【发布时间】:2016-10-21 12:49:54
【问题描述】:
我的要求是生成一个文本文件。我使用 bufferedWriter.newLine() 在我的文件中添加了新行,它在 Windows 中工作正常,但在 linux 中不工作。 我尝试了太多东西,但没有任何结果。如果我在记事本++中打开生成的文本文件,它会显示为行分隔符,但在记事本中它看起来没有任何行分隔符。在控制台中,我可以在两者中找到新行平台,但文件只有 windows 有新行,但在 linux 中没有。
下面是我的代码
File file = new File(fileToWrite);
bufferedWrtier = new BufferedWriter(new FileWriter(file));
LOGGER.debug("Line Separator 1:: "+System.getProperty("line.separator"));
LOGGER.debug("Line Separator 2:: "+System.lineSeparator());
LOGGER.debug("Line Separator 3:: "+SystemUtils.LINE_SEPARATOR);
bufferedWrtier.write(System.getProperty("line.separator"));
bufferedWrtier.write(System.lineSeparator());
bufferedWrtier.write(SystemUtils.LINE_SEPARATOR);
任何帮助将不胜感激!!!!!!!!!!
本地机器操作系统:windows 服务器机器操作系统:Linux
【问题讨论】:
-
记事本无法处理只有 LF 的 unix EOL。它只能处理 Windows CRLF。所以你的程序没有问题,这是记事本的“问题”。
-
@jens,那么他们无法解决这个问题??
-
Windows Notepad.exe 是一个非常基本的应用程序,它无法处理以换行符(也称为 Unix 行分隔符)结尾的文本文件。您的选择是: (1) 使用其他工具,例如 Notepad++; (2) 使用将 Unix 行尾转换为 Windows 行尾的复制实用程序将文件复制到您的 Windows 机器上。
-
@KlitosKyriacou,你能简单解释一下第二点吗
-
@Madhesh 如果您使用
write("\r\n")而不是writeLine(),则可以