【问题标题】:"\n" not working when exported to .jar file导出到 .jar 文件时“\n”不起作用
【发布时间】:2012-11-05 05:35:29
【问题描述】:

我有一个我编写的程序的输出文件。它由 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 文件中不起作用?

【问题讨论】:

  • System.getProperty("line.separator")替换\n

标签: java jar filewriter bufferedwriter


【解决方案1】:

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

无论如何,这与.jar 文件无关。 Eclipse 很可能很聪明,会向您显示换行符,而操作系统则不会。

【讨论】:

  • 好的,使用 out.newLine() 解决了这个问题。感谢您的帮助
【解决方案2】:

一、检查行分隔符是否有效。使用@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.");

【讨论】:

  • 知道手边一定有一个println,当我去寻找它时,我只是被另一个问题分心了。 ;)
  • @AndrewThompson 曾经做过。我给了你尽可能多的信任。 :)
  • “我给了你尽可能多的信任。” 这相当于“比我应得的更多的信任”。 ;) +1 对你的回答,顺便说一句。
猜你喜欢
  • 2016-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多