import java.io.*;
public class TestBufferedStream {
public static void main(String[] args) {
try {
BufferedWriter bw = new BufferedWriter(new FileWriter("f:/language/java/java/shiyan02.txt"));
BufferedReader br = new BufferedReader(new FileReader("f:/language/java/java/shiyan02.txt"));
String s = null;
for(int i=0; i<=100; i++) {
s = String.valueOf(Math.random());
bw.write(s);
bw.newLine();
}
bw.flush();
while((s=br.readLine())!=null) {
System.out.println(s);
}
bw.close();
br.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}
这个程序的运行结构是在指定的目录建立一个装着100行随机数的txt文件,之后在读出来,在程序中我做了个试验,如果我把bw.flush();这句去掉,那么,100个随机数依然可以写到那个txt文档中去,但去读不出来东西了,我想知道为什么?
public class TestBufferedStream {
public static void main(String[] args) {
try {
BufferedWriter bw = new BufferedWriter(new FileWriter("f:/language/java/java/shiyan02.txt"));
BufferedReader br = new BufferedReader(new FileReader("f:/language/java/java/shiyan02.txt"));
String s = null;
for(int i=0; i<=100; i++) {
s = String.valueOf(Math.random());
bw.write(s);
bw.newLine();
}
bw.flush();
while((s=br.readLine())!=null) {
System.out.println(s);
}
bw.close();
br.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}
这个程序的运行结构是在指定的目录建立一个装着100行随机数的txt文件,之后在读出来,在程序中我做了个试验,如果我把bw.flush();这句去掉,那么,100个随机数依然可以写到那个txt文档中去,但去读不出来东西了,我想知道为什么?
先开写流 关了以后 再开读流
还有个办法你可以读到数据,你把bw.close(); 这句提前到bw.flush();这里,把它替换掉也可以.你不刷新,但你关闭了,也就可以读了.
这样读流肯定不是更新后的内容(除非写的时候会有事件通知他一起刷新)写完了 close了
在慢慢读好了