黑马程序员技术交流社区
标题:
关于IO流 为什么下面的程序只能执行一半呢?
[打印本页]
作者:
王海龙
时间:
2012-12-22 13:06
标题:
关于IO流 为什么下面的程序只能执行一半呢?
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new FileWriter("c:/s1.txt"));
BufferedReader br = new BufferedReader(new FileReader("c:/s1.txt"));
Scanner input = new Scanner(System.in);
while (true) {
System.out
.println("Please input a sentence(input \"end\" to exit):");
String str = input.nextLine();
if (str.toUpperCase().equals("END")) {
break;
}
bw.write(str.toUpperCase());
bw.newLine();
}
//到这里时,运行正确,文件写入内容也符合预期,但是下面的读取操作却没有返回任何结果,为什么?
String str = "";
while ((str = br.readLine()) != null) {
System.out.println(str); }
//或者使用如下代码
//while(br.ready()){
// System.out.println(br.readLine());
//}
//这样写正确吗?
bw.close();
br.close();
}
复制代码
作者:
彭宾
时间:
2012-12-22 16:51
bw.write(str.toUpperCase());
bw.newLine();
在中间加上bw.flush();前面你虽然看到了结果写进去了,那是因为你后面的br.close()的效果,在这之前,数据一直都在缓冲区中所以你读不到。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2