我有一个应用程序,我想在EOF中将字符串作为换行符写入文件。
我的程序在Linux操作系统上执行,我想要写的文件驻留在一个windows共享文件夹中。
问题:当我使用eclipse在windows操作系统上运行程序时,我可以将字符串作为换行符添加到文件中。但是,在Linux机器上部署和运行应用程序时,字符串会被添加到文件中,而不是作为换行符添加。
例如:如果我想将一个新的字符串作为“测试用户”添加到文件中,那么它就是这样添加的。
Hr usr
Hi usr
Jk usrtest user我想让它像
Hr usr
Hi usr
Jk usrt
test user
BufferedWriter bw = new BufferedWriter(new FileWriter(fileUrl, true));
bw.newLine();
//didn’t write newline when I deployed it to Linux box
bw.write();
//OR
bw.append(System.lineSeperator() + “mystring”);
//didn’t write newline when I deployed it to Linux box
//OR
bw.append(“\r\n” + “mystring”);
//didn’t write newline when I deployed it to Linux box我非常肯定,在代码方面没有什么问题,在UNIX或Windows的某个地方,与换行符分离混淆了。
如有任何意见,将不胜感激。
谢了,杰万。
发布于 2018-05-02 18:19:28
在这种情况下,"\r\n“是工作的,我遇到了一个部署问题,所以在尝试"\r\n”时,它没有更新web逻辑服务器中的类。
谢谢你对我的职位感兴趣。
发布于 2018-04-30 13:57:15
罪魁祸首在此发现:
bw.append(“\r\n” + “mystring”);正如Johnny Mopp所提到的,断线在Linux上的行为有所不同。对于Linux部署,您应该使用"\n“而不是"\r\n”。
这个问题的一个典型解决方案是创建一个Utility /方法来检查JVM运行在哪个操作系统上,然后根据OS类型返回一个值(IMHO,这类值的映射会很好地工作)。
发布于 2018-04-30 13:59:08
除了其他注释中提到的\n之外,您还可以尝试使用String.format("%n")来获取新行。
甚至你也可以使用System.getProperty("line.separator");
https://stackoverflow.com/questions/50101976
复制相似问题