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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程洋 中级黑马   /  2013-12-25 17:28  /  974 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

read()方法读一个文件(文件里只有abcd和换行符),
用write()方法写出来时文件里的换行符还存在吗?为什么不显示,
如果将读到数据添加到StringBuilder里面,在打印就可以看见\r\n了?

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 任亚俊 于 2013-12-25 21:59 编辑
  1.                 File file=new File("D:\\IO.txt");
  2.                 if(!file.exists()){
  3.                         file.createNewFile();
  4.                 }
  5.                 FileWriter fw=new FileWriter(file);
  6.                 char temp[]={'a','b','c','d','\n','\r'};
  7.                 fw.write(temp);
  8.                 fw.flush();
  9.                 char buf[]=new char[64];
  10.                 FileReader fr=new FileReader(file);
  11.                 int i=0;
  12.                 int ch;
  13.                 while((ch=fr.read())!=-1){
  14.                         buf[i++]=(char) ch;
  15.                         //打印每个读到的字符,运行可以看出它读到了\n和\r,分别为10和13
  16.                         System.out.println(ch);
  17.                 }
  18.                 System.out.println(buf);
复制代码

运行上面代码可以看出,可以打印出换行符的ASCII码10和13.

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
其实是有的,只是Windows把它们作为特殊符号,隐藏了。你用鼠标拖动文字,应该可以出现他们是空白的。
回复 使用道具 举报
本帖最后由 75100313 于 2013-12-27 14:42 编辑

因为write()写的都是去除了\r\n的东西  不像read()那样 直接把换行省略了 我记得老师的视频里面讲过
所以 写的时候 必须明确指定   我要换行了  要不是不会换行的


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马