导出到.jar文件时“\ n”不起作用

时间:2012-11-16 13:23:57

标签: java jar filewriter bufferedwriter

我有一个我写过的程序的输出文件。它由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文件中无效?

2 个答案:

答案 0 :(得分:5)

你不应该直接使用'\ n'。使用out.newLine()引入换行符,或将BufferedWriter换行到PrintWriter,然后使用out.println()

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

答案 1 :(得分: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.");