9

我想使用 java 将结果写入文件末尾

FileWriter fStream;
        try {
            fStream = new FileWriter("recallPresision.txt", true);
            fStream.append("queryID=" + queryID + "         " + "recall=" + recall + "           Pres=" + presision);
            fStream.append("\n");
            fStream.flush();
            fStream.close();
        } catch (IOException ex) {
            Logger.getLogger(query.class.getName()).log(Level.SEVERE, null, ex);
        }

"\n"输入了语句,它写入文件但没有换行

我想用新行打印结果

4

5 回答 5

10

换行顺序取决于系统。在某些系统上它是,\n在其他系统上是\n\r,或其他完全不同的东西。幸运的是,Java 有一个内置属性允许您访问它:\r\n\r

 String newline = System.getProperty("line.separator");
于 2012-05-15T22:39:14.517 回答
7

错误的

fStream.append("\n");

// don't guess the line separator!
fStream.append(System.getProperty("line.separator"));
于 2012-05-15T22:40:09.857 回答
2

它确实打印换行符,你想要的是最后的空行。添加另一个\n.

于 2012-05-15T22:39:34.647 回答
2

尝试\r\n改用。

此外,您应该会发现,如果您在富文本编辑器(例如写字板)中打开文本文件,您的附加功能实际上是有效的。

编辑:忽略我。Jeffery 和 Andrew 的回答要好得多。

于 2012-05-15T22:39:45.017 回答
2

您还可以更改为:

fStream = new FileWriter("recallPresision.txt", true);
PrintWriter out = new PrintWriter(fStream);
out.println("queryID=" + queryID + "         " + "recall=" + recall + "           Pres=" + presision);
out.flush();
out.close();
fStream.close();
于 2012-05-15T22:42:45.457 回答