Java:如何写入文本文件而不覆盖和写入新行

时间:2013-02-17 00:04:52

标签: java file

我看过无数的论坛帖子和关于如何写文件的文章,但无济于事我遇到了一个有用的文章。我目前使用的是一个声明为:

的FileWriter
   public FileWriter filewriter;

然后使用

启动
   try {
      filewriter = new FileWriter(textfile, true);
   } catch (IOException e) {
      e.printStackTrace();
   }

然后我用以下内容写入文件:

   try {
      filewriter.write(string + "string");
      filewriter.flush();
   catch (IOException e) {
      e.printStackTrace();
   }

那么如何制作它以便我的作者不会覆盖当前文本,并且会在文本中添加新行。

例如(尝试使用这些作为示例):我想写下面的

  1. 去镇上
  2. 然后右转
  3. 然后进入酒馆
  4. 向紫色的老人打招呼
  5. 那么我该如何从Java中完全写出来。所有这些都是在不同的时间发起的,比如每当你点击一个按钮时,第一行写入,每当你再次点击它时,它会写第二行,依此类推。

1 个答案:

答案 0 :(得分:0)

编写的代码是正确的。它会在文件末尾写入数据,并覆盖任何现有数据。

唯一的可能的问题是,如果现有文件的最后一行没有以行终止符结束,那么您在末尾写入的第一行额外数据将被附加到和前一个最后一行。如果这是您关注的问题,那么简单的解决方法是首先添加一个空行;例如filewriter.write(newline);其中newline包含适当的行终止字符。

(我还注意到你写的“代码”不包含显式行终止符。它是字符串的一部分吗?可能是你的问题?Writer.write(...)方法不会自动添加行终止符。 ..)