【发布时间】:2016-03-23 08:13:56
【问题描述】:
在 Windows 中写入文件时出现问题。我的 JAVA 程序在我的 Mac 上运行良好,但在 windows 中就无法运行。
这是在 windows 中执行不同的代码:
String string = textArea.getText();
if (string.contains(System.getProperty("line.separator"))) {
notatet = string.replace(System.getProperty("line.separator"), "<line.separator>");
}
当我将此字符串保存到 MAC 中的 txt 文件时,我会得到:
Line1<line.separator>Line2<line.separator><line.separator>Line3
但是当我将此字符串保存到 WINDOWS 中的 txt 文件时,我得到了这个:
Line1
Line2
Line3
现在我显然想要 Mac 选项,那是我的目标。我应该如何处理我的代码以使其在两个/所有操作系统中都能正常工作?
【问题讨论】:
-
旁注:你有来自java 7的
System.lineSeparator():docs.oracle.com/javase/7/docs/api/java/lang/… -
以上都不是。避免硬编码特殊字符,并使用
println()。它知道系统行分隔符是什么。 -
line.separator在 Windows 上是\r\n。检查您的文本区域,看看它是否真的包含此分隔符,而不仅仅是\n -
@jhamon 我已经检查过了,它确实包含这个分隔符。
-
@ReutSharabani 这可能是因为我的 Windows 上没有更新 java 吗?
标签: java file system separator