BufferedWriter 无法写入文件eclipse提示错误Stream closed

来源:互联网 发布:映像淘宝视频 编辑:程序博客网 时间:2024/04/29 19:25

最近在重新学习Java ,在看到Buffered缓冲流时,自己运用时发现出现错误Stream closed,而且文件里的内容没有了,并且无法写入。后来又把课本例题写了一遍,还是同样的出错误,读出数据没问题。后来经过一番百度,发现应该再加入一条语句out.flush()。所用是把缓冲区的内容强制的写出。也就说咱们要写入的东西都在缓冲区,没有这条语句,就无法把缓冲区的东西写进去,但是为什么会出错Stream closed,不太清楚了。下面是课本例题部分代码:

不知道为什么课本没有加.....

File file=new File("G:\\Test\\test3\\txt_3.txt");
String[] content={"天气预报","北京晴","上海多,云有小雨","大连晴,有时多云"};
try {
FileWriter outOne = new FileWriter(file);
BufferedWriter outTwo=new BufferedWriter(outOne);
for(String str:content)
{
outTwo.write(str);
outTwo.newLine();
}
outTwo.flush();//不加上会无法写入。。。。。
//flush() 立即将缓冲区的数据输出到接收方。
outOne.close();
outTwo.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

try {
FileReader inOne = new FileReader(file);
BufferedReader inTwo=new BufferedReader(inOne);
String s=null;
try {
while((s=inTwo.readLine())!=null)
{
System.out.println(s);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

eclipse 报错:

java.io.IOException:Stream closed
at sun.nio.cs.StreamEncoder.ensureOpen(StreamEncoder.java:45)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:118)
at java.io.OutputStreamWriter.write(OutputStreamWriter.java:207)
at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:129)
at java.io.BufferedWriter.close(BufferedWriter.java:264)
at MyPackage.Test.main(Test.java:718)

好了,就到这吧。。。

0 0
原创粉丝点击