Java 8:无法添加显示在记事本中的新行

CSStudent7782:

我正在使用Files.write()方法在unix openjdk版本1.8.0_151中使用Java将数据附加到文本文件中。

我阅读了此问题,建议我使用System.lineSeparator()而不是"\n"

我的代码如下所示:

try {
    Files.write(Paths.get("spillInfo.txt"), 
    (infoString + System.lineSeparator()).getBytes(), 
     StandardOpenOption.APPEND);

} catch (IOException e) {
     System.err.println("Caught IOException: " +  e.getMessage());
}

这个问题中,记事本使用ANSI字符集,从这个问题中,java中的字符集是一个问题"cp1252"但是当我添加"cp1252""windows-1252"作为字符的形式getBytes()(或者如果我像上面的代码中那样将其保留为空)时,新行不会显示在记事本中(它们确实在所有三个方面都出现在notepad ++中)。

瓦迪姆:

如果您在Unix上运行Java程序,则System.lineSeparator()\n仍然有效。

如果您需要Windows记事本具有Windows的行分隔符,请使用\r\n

这是Windows记事本中的老东西-它只能识别Windows \r\n微软中没有人关心(从来没有):-)

您可以做的另一件事是引入自己的系统变量并将其传递给Java程序,例如

-Dtarget_system=Windows     // or Unix

然后在代码中,您可以根据的值使用适当的行分隔符

System.getProperty("target_system")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章