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