黑马程序员技术交流社区

标题: BufferedReader的readLine()如何解决多一个换行符的问题 [打印本页]

作者: 郭学文    时间: 2011-10-27 19:32
标题: BufferedReader的readLine()如何解决多一个换行符的问题
将C盘的文件复制到D盘
这样写代码D盘的文件会比源文件多一行换行,如何解决
若用StringBiulder存储后再回头删除两个角标数据,这样在非Windows平台也是有问题的啊

如何解决?:Q

  1. br = new BufferedReader(new FileReader("c:\\setup.log"));
  2. bw = new BufferedWriter(new FileWriter("d:\\setup.log"));
  3. String temp;
  4.                         while ((temp = br.readLine()) != null)
  5.                         {
  6.                                 bw.write(temp);
  7.                                 bw.newLine();
  8.                                 bw.flush();
  9.                         }
复制代码

作者: 黄健    时间: 2011-10-27 20:53
你每读一行,都会写一行,再写换行符,当原文件最后一行没有换行符时,拷贝的文件就会多一个换行,因为readLine()方法在读取一行时已经把换行符读取过了,只是返回的字符串不包含换行符,导致我们无法判断最后一行是否有换行符,所以暂时未想到解决办法,可以考虑不用readLine()方法。




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