19

我知道我们应该在我们的问题中添加一段代码,但我真的傻眼了,无法理解或找到任何可以遵循的示例。

基本上我想打开文件C:\A.txt,其中已经有内容,并在最后写一个字符串。基本上是这样的。

文件 A.txt 包含:

John
Bob
Larry

我想打开它并在最后写 Sue,所以文件现在包含:

John
Bob
Larry
Sue

抱歉没有代码示例,今天早上我的大脑死了....

4

3 回答 3

42

请搜索拉里佩奇和谢尔盖布林为世界提供的谷歌。

BufferedWriter out = null;

try {
    FileWriter fstream = new FileWriter("out.txt", true); //true tells to append data.
    out = new BufferedWriter(fstream);
    out.write("\nsue");
}

catch (IOException e) {
    System.err.println("Error: " + e.getMessage());
}

finally {
    if(out != null) {
        out.close();
    }
}
于 2012-05-19T18:32:34.820 回答
11

建议:

  • 创建一个引用磁盘上现有文件的File对象。
  • 使用FileWriter对象,并使用接受 File 对象和布尔值的构造函数,后者如果true存在则允许将文本附加到 File 中。
  • 然后初始化一个PrintWriter,将 FileWriter 传递到它的构造函数中。
  • 然后调用println(...)您的 PrintWriter,将新文本写入文件。
  • 与往常一样,在完成后关闭您的资源(PrintWriter)。
  • 与往常一样,不要忽略异常,而是要捕获并处理它们。
  • PrintWriter的close()应该在 try 的 finally 块中。

例如,

  PrintWriter pw = null;

  try {
     File file = new File("fubars.txt");
     FileWriter fw = new FileWriter(file, true);
     pw = new PrintWriter(fw);
     pw.println("Fubars rule!");
  } catch (IOException e) {
     e.printStackTrace();
  } finally {
     if (pw != null) {
        pw.close();
     }
  }

容易,不是吗?

于 2012-05-19T18:22:39.463 回答
3

要扩展鳗鱼先生的评论,您可以这样做:

    File file = new File("C:\\A.txt");
    FileWriter writer;
    try {
        writer = new FileWriter(file, true);
        PrintWriter printer = new PrintWriter(writer);
        printer.append("Sue");
        printer.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

别说我们对你不好!

于 2012-05-19T18:27:44.090 回答