A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© whocases 黑马帝   /  2012-6-25 23:11  /  2160 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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文件中打开后显示的不是换行,而是小黑方框?}

7 个回复

倒序浏览
本帖最后由 韦念欣 于 2012-6-25 23:20 编辑

因为这个\n是Linux下的换行符
在windows下,换行符应该是\r\n
回复 使用道具 举报
楼上正解\r\n
回复 使用道具 举报
windows的换行并不是直接的"n",是"\r\n"。所以out.write("\n")只能得到一个黑框,
因为windos不认为这是个“换行”。直接从记事本输入的话,windows自动输入了"\r\n",
从文本文件中读出来的也是"\r\n",可以正常显示。
正则表达式:\r是回车符,
而\n是换行符。Windows默认\n在文档中显示的
是一个空格或者小黑框。所以,要先回车,再换行。
在java里输出可以用\n,在文件里要用\r\n
回复 使用道具 举报
在JAVA程序中向文件写入内容,使用一般的编辑器时当需要换行时通常会使用换行符或回车符---'\n'、'\r',但它们在记事本文件中会显示成‘■’,根本起不到换行的作用。这是编码问题,记事本的换行符号是"\r\n"。如果有跨平台使用的要求,可以使用 String str= System.getProperty("line.separator"); 来获取换行符。 linux使用 \n windows使用\r\n 其它操作系统可能也不同。
回复 使用道具 举报
Windows系统里换行符是\r\n   
Linux下的换行符是\n
回复 使用道具 举报
吴扬 中级黑马 2012-6-26 01:53:35
7#
因为在windows操作系统中的换行符是\r\n,\n是Linux操作系统中的换行符,而在windows操作系统下,\n这个对应的刚好是一个小黑方框,所以把这个小黑方框打印出来了,只要把"\n"改成"\r\n"就可以了!
回复 使用道具 举报
黄昆 中级黑马 2012-6-26 11:10:34
8#
不同的操作系统和应用程序锁使用的默认编码表是不同的,windows操作系统中的换行符是\r\n,\n是Linux操作系统中的换行符。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马