0

我查看了无数关于如何写入文件的论坛帖子和文章,但无济于事。我目前使用一个 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. 跟紫衣老人打招呼

那么我该如何完全从 Java 中编写。所有这些都是在不同的时间发起的,比如每当你点击一个按钮时,第一行就会写入,每当你再次点击它时,它就会写入第二行,依此类推。

4

1 回答 1

0

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

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

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

于 2013-02-17T06:23:17.447 回答