如何强制Java只写换行符?I';我正在使用获取CRLF\n
[已解决] 看来我的申请不是问题所在。按建议逐字符读取不会显示任何CR。 错误可能在接收器端(与我的应用程序无关),出于任何原因,它添加了0x0D字符。 这仍然是一个很好的示例,说明了如何仅放置\n [/已解决] 我的应用程序中有一个奇怪的行为: 我只需要用一个LF结束每一行,据我所知,它应该是“\n”。 但我仍然会得到每一行的CRLF(好像我在写“\r\n”) 这个应用程序相当复杂,所以我在这里粘贴了一个示例代码如何强制Java只写换行符?I';我正在使用获取CRLF\n,java,windows,newline,carriage-return,Java,Windows,Newline,Carriage Return,[已解决] 看来我的申请不是问题所在。按建议逐字符读取不会显示任何CR。 错误可能在接收器端(与我的应用程序无关),出于任何原因,它添加了0x0D字符。 这仍然是一个很好的示例,说明了如何仅放置\n [/已解决] 我的应用程序中有一个奇怪的行为: 我只需要用一个LF结束每一行,据我所知,它应该是“\n”。 但我仍然会得到每一行的CRLF(好像我在写“\r\n”) 这个应用程序相当复杂,所以我在这里粘贴了一个示例代码 private static final String STR1 = "Str_
private static final String STR1 = "Str_1";
private static final String STR2 = "Str_2";
private static final char NEW_LINE = (char)0x0A;
//private static final String NEW_LINE = "\n";
public static void main(String[] args) {
//They all return CR+LF instead of LF only.
System.out.println("Str_1\nStr_2");
System.out.print(STR1+NEW_LINE+STR2);
try{
FileOutputStream fos = new FileOutputStream("tests\\newline_test.txt");
fos.write((STR1+NEW_LINE+STR2).getBytes()); //The case I'm mostly interested into
fos.close();
} catch (IOException e){
e.printStackTrace();
}
}
我正在Windows平台上使用Eclipse和Java6(强制)
有没有什么环境会把这搞砸?还是我遗漏了什么?如果您只打算使用Windows,可以使用13和10作为行分隔符
os.write(10);
os.write(13);
如果您必须注意管理跨平台测线分离器,我将使用以下方法:
System.getProperty("line.separator")
或者这个:
String.format("%n")
希望对您有所帮助如果您只打算使用Windows,您可以使用13和10作为行分隔符
os.write(10);
os.write(13);
如果您必须注意管理跨平台测线分离器,我将使用以下方法:
System.getProperty("line.separator")
或者这个:
String.format("%n")
希望对您有所帮助我无法相信,此代码会生成一个包含\r\n的文件 创建后,在使用任何其他工具对文件进行剪切之前,立即使用十六进制转储工具检查文件(例如,您可以使用“微小的十六进制程序”)
可能是您在创建文件后用编辑器打开了该文件,而编辑器\r\n回写了?真不敢相信,此代码会生成一个带有\r\n 创建后,在使用任何其他工具对文件进行剪切之前,立即使用十六进制转储工具检查文件(例如,您可以使用“微小的十六进制程序”)
可能是您在创建文件后用编辑器打开了该文件,而编辑器将其写回\r\n?您的程序是正确的。要进行测试,请在创建文件后添加此代码段,即在
fos.close()之后
输出应为:
Str_1
Str_2
Str_1
Str_283
116
114
95
49
10
83
116
114
95
50
请注意,您只会得到新行字符10
。如果文件有CR,那么输出也应该包含13
您的程序是正确的。要进行测试,请在创建文件后添加此代码段,即在fos.close()之后
输出应为:
Str_1
Str_2
Str_1
Str_283
116
114
95
49
10
83
116
114
95
50
请注意,您只会得到新行字符10
。如果文件有CR,那么输出也应该包含13
如何检查换行符是否只是\n
或\r\n
?是否仅在eclipse窗口中尝试过?因为存在一个打开的错误:如果换行符只是\n
或\r\n
,如何检查?是否仅在eclipse窗口中尝试过?因为有一个开放的bug:完美的检查方法,没想到。似乎问题出在接收器端,这不是我开发的。非常感谢。完美的检查方式,没想到。似乎问题出在接收器端,这不是我开发的。非常感谢。