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代わりに使用してみてください。

また、ワードパッドなどのリッチテキストエディタでテキストファイルを開くと、追加が実際に機能していることがわかります。

編集:私を無視します。ジェフリーとアンドリューの答えははるかに優れています。

于 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 に答える