最近做课程设计时,需要将一段文字写到本地文件中,在换行符上面出了个小问题,特此记录
Java里面换行很自然就加了个“/n”,控制台上输出也从未见有问题,但是写到一个txt文件后,记事本打开一看,里面的“/n”全变成了黑色方块,也就是不可识别的字符,不禁有点郁闷,换了“/r”,还是如此
于是用ultraedit打开生成的文件,以十六进制查看,发现刚才的“/n”十六进制为0A,“/r”为0D,然后再新建一个txt,里面直接敲回车保存,按刚才的方法查看,发现是0A0D,原来如此!Windows里面回车符是“/r/n”,修改了程序以后再次运行,生成的txt可以正常显示了
网上查了一下,不同操作系统回车代表字符的是不同的,Java里面的BufferedWriter类有个newLine方法可以方便的写入平台相关的回车,手册里面有段话:“该类提供了 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性 line.separator 定义。并非所有平台都使用新行符 ('/n') 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符”。 可见,平时还是尽量用这个方法比较好
Java里面换行很自然就加了个“/n”,控制台上输出也从未见有问题,但是写到一个txt文件后,记事本打开一看,里面的“/n”全变成了黑色方块,也就是不可识别的字符,不禁有点郁闷,换了“/r”,还是如此
于是用ultraedit打开生成的文件,以十六进制查看,发现刚才的“/n”十六进制为0A,“/r”为0D,然后再新建一个txt,里面直接敲回车保存,按刚才的方法查看,发现是0A0D,原来如此!Windows里面回车符是“/r/n”,修改了程序以后再次运行,生成的txt可以正常显示了
网上查了一下,不同操作系统回车代表字符的是不同的,Java里面的BufferedWriter类有个newLine方法可以方便的写入平台相关的回车,手册里面有段话:“该类提供了 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性 line.separator 定义。并非所有平台都使用新行符 ('/n') 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符”。 可见,平时还是尽量用这个方法比较好
2580

被折叠的 条评论
为什么被折叠?



