如何使用BufferedWriter和FileOutPutStream将数据附加到文件

时间:2014-12-15 08:47:28

标签: java file-io inputstream outputstream bufferedwriter

在下面的代码中,我尝试使用FileOutputStreamBufferedWriter将一些文本附加到文件中,如下所示。在ru时间,尽管文件有一些数据,但当我使用{{1我和FileOutputStream我发现文件是空的,即使我想要附加BufferedWriter的数据也不存在,文件也是完全空的。

请告诉我如何修复它。

代码

bw.write("new information");

3 个答案:

答案 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的附加标志。然后只创建为可附加的。否则它会像只读一样。

接下来,您需要关闭编写器的文件结尾。所以只有它才会刷新整个数据。