在下面的代码中,我尝试使用FileOutputStream
和BufferedWriter
将一些文本附加到文件中,如下所示。在ru时间,尽管文件有一些数据,但当我使用{{1我和FileOutputStream
我发现文件是空的,即使我想要附加BufferedWriter
的数据也不存在,文件也是完全空的。
请告诉我如何修复它。
代码:
bw.write("new information");
答案 0 :(得分:2)
试试这个,FileOutputStream(File file, boolean append) with append
OutputStream os = new FileOutputStream(f, true);
如果append boolean为true,则意味着它将使用旧内容附加新内容。
而不是
OutputStream os = new FileOutputStream(f);
FileOutputStream也有默认的append方法。因此,请使用此附加旧内容。
答案 1 :(得分:0)
试试这个(请注意传递给FileOutputStream
的布尔值):
File f = new File(SystemConfig.getSystConfigInstance("E"));
System.out.println(f.getAbsolutePath() + " name: " + f.getName());
OutputStream os = new FileOutputStream(f, true); // <--- append = true
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
bw.write("new information");
有关详情,请阅读FileOutputStream
的{{3}}:
FileOutputStream(文件文件,布尔附加)
如果第二个参数为true,则字节将写入结尾 文件而不是开头。
答案 2 :(得分:0)
File f = new File(SystemConfig.getSystConfigInstance("E"));;
System.out.println(f.getAbsolutePath() + " name: " + f.getName());
OutputStream os = new FileOutputStream(f,true);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
bw.write("new information");
bw.close();
您错过了FileOutputStream的附加标志。然后只创建为可附加的。否则它会像只读一样。
接下来,您需要关闭编写器的文件结尾。所以只有它才会刷新整个数据。