黑马程序员技术交流社区

标题: IO中FileWriter的问题 [打印本页]

作者: whocases    时间: 2012-6-25 23:11
标题: IO中FileWriter的问题
本帖最后由 whocases 于 2012-6-28 18:57 编辑

public static void main(String[] args) {
                FileWriter fw =null;
        try
        {
           fw = new FileWriter("111.txt,true")
          fw.write("3333\n3333");   //这里加上"/n"后,为什么在111.txt文件中打开后显示的不是换行,而是小黑方框?}
作者: 韦念欣    时间: 2012-6-25 23:19
本帖最后由 韦念欣 于 2012-6-25 23:20 编辑

因为这个\n是Linux下的换行符
在windows下,换行符应该是\r\n
作者: Forever。    时间: 2012-6-25 23:21
楼上正解\r\n
作者: 张华廷    时间: 2012-6-25 23:44
windows的换行并不是直接的"n",是"\r\n"。所以out.write("\n")只能得到一个黑框,
因为windos不认为这是个“换行”。直接从记事本输入的话,windows自动输入了"\r\n",
从文本文件中读出来的也是"\r\n",可以正常显示。
正则表达式:\r是回车符,
而\n是换行符。Windows默认\n在文档中显示的
是一个空格或者小黑框。所以,要先回车,再换行。
在java里输出可以用\n,在文件里要用\r\n
作者: 游洪波    时间: 2012-6-25 23:45
在JAVA程序中向文件写入内容,使用一般的编辑器时当需要换行时通常会使用换行符或回车符---'\n'、'\r',但它们在记事本文件中会显示成‘■’,根本起不到换行的作用。这是编码问题,记事本的换行符号是"\r\n"。如果有跨平台使用的要求,可以使用 String str= System.getProperty("line.separator"); 来获取换行符。 linux使用 \n windows使用\r\n 其它操作系统可能也不同。

作者: 李伟    时间: 2012-6-26 01:13
Windows系统里换行符是\r\n   
Linux下的换行符是\n
作者: 吴扬    时间: 2012-6-26 01:53
因为在windows操作系统中的换行符是\r\n,\n是Linux操作系统中的换行符,而在windows操作系统下,\n这个对应的刚好是一个小黑方框,所以把这个小黑方框打印出来了,只要把"\n"改成"\r\n"就可以了!
作者: 黄昆    时间: 2012-6-26 11:10
不同的操作系统和应用程序锁使用的默认编码表是不同的,windows操作系统中的换行符是\r\n,\n是Linux操作系统中的换行符。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2