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”不起作用一样。

我是否错误地使用了 FileWriter/BufferedWriter,或者它在 .jar 文件中不起作用?

4

2 回答 2

5

你不应该直接使用'\n'。要么使用out.newLine()来引入换行符,要么将 包装BufferedWriterPrintWriter,然后使用out.println().

.jar无论如何,这与文件无关。Eclipse 更有可能是聪明的并向您显示换行符,而操作系统则没有。

于 2012-11-16T13:32:59.050 回答
4

一、检查行分隔符是否有效。使用@Andrew Thompson 提供的 System.getProperty("line.separator") 。

如果您要编写大量新行,另一种选择是将 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 回答