写入文件而不覆盖该文件中的现有数据

时间:2014-10-23 10:05:58

标签: java filewriter

我有一个文件编写器,它从用户获取String数据并将其写入文件。但是文件编写器会替换该文件中已有的数据。我如何阻止它这样做?我只想继续添加信息,而不是写一些东西。

这是代码

    String info = scan.nextLine();
    File myFile = new File ("/home/greg/workspace/Mavericks/fred.txt");
    FileWriter writer = new FileWriter (myFile);
    writer.write(register);
    writer.flush();

感谢。我修好了。现在我只想让作者用空格写。当我写入文件时,它只是在同一行内写入。

6 个答案:

答案 0 :(得分:1)

使用FileWriter的第二个参数,该参数定义是否要追加。只需将其设置为true

BufferedWriter writer = new BufferedWriter(new FileWriter(
                sFileName, true));

在每行后添加\n

答案 1 :(得分:1)

您需要使用布尔值true。来自docs

public FileWriter(String fileName,
          boolean append)
           throws IOException
  

在给定带有布尔值的文件名的情况下构造FileWriter对象   指示是否附加所写的数据。

<强>参数:

fileName - String依赖于系统的文件名。

append - 布尔值如果为true,则数据将被写入文件的末尾而不是开头。

答案 2 :(得分:0)

使用

new FileWriter(myFile, true)

第二个参数用于追加。

答案 3 :(得分:0)

API:

FileWriter(File file, boolean append)

在给定File对象的情况下构造FileWriter对象。

http://docs.oracle.com/javase/7/docs/api/java/io/FileWriter.html

答案 4 :(得分:0)

FileWriter在constructor中有一个可选的布尔值,声明是否应该追加它。

FileWriter writer = new FileWriter(..., true)

答案 5 :(得分:-1)

BufferedWriter bw = new BufferedWriter(new FileWriter(filename,true));