4

自分が書いたプログラムの出力ファイルがあります。FileWriterとBufferedWriterによって書かれています。

    FileWriter errout = new FileWriter(new File("_ErrorList.txt"));
    BufferedWriter out = new BufferedWriter(errout);

後で、に似た行を使用してファイルに書き込みます。

    out.write("Product id:" + idin + " did not fetch any pictures.\n ");

Eclipseでプログラムを実行するだけで、出力ファイルは正しくフォーマットされ、各メッセージは新しい行に書き込まれます。ただし、.jarファイルにエクスポートすると、「\ n」が機能していないかのように機能しなくなり、すべてのメッセージが1行に表示されます。

FileWriter / BufferedWriterを誤って使用していますか、それとも.jarファイルでは機能しませんか?

4

2 に答える 2

5

'\n'を直接使用しないでください。を使用out.newLine()して改行を導入するか、をにラップしBufferedWriterPrintWriter、を使用しますout.println()

.jarとにかく、これはファイルとは何の関係もありません。おそらく、Eclipseは賢く、改行を表示しますが、オペレーティングシステムはそうではありません。

于 2012-11-16T13:32:59.050 に答える
4

1つは、行区切り記号が有効であることを確認します。@Andrew Thompsonが提供するSystem.getProperty( "line.separator")を使用します。

この新しい行の書き込みを頻繁に行う場合のもう1つのオプションは、BufferedWriterをPrintWriterでラップすることです。

  FileWriter errout = new FileWriter(new File("_ErrorList.txt"));
  BufferedWriter out = new BufferedWriter(errout);

  PrintWriter printWriter = new PrintWriter(out);
  printWriter.println("Product id:" + idin + " did not fetch any pictures.");
于 2012-11-16T13:34:04.390 に答える