黑马程序员技术交流社区

标题: 读取文件内容代码疑惑,请知道的同学请请原理 [打印本页]

作者: 樊其杰    时间: 2013-3-13 13:13
标题: 读取文件内容代码疑惑,请知道的同学请请原理
本帖最后由 樊其杰 于 2013-3-13 18:33 编辑
  1. package com.test.ninteen;

  2. import java.io.*;

  3. public class BufferedReaderDemo {

  4.         
  5.         public static void main(String[] args)  throws IOException{
  6.                 //创建一个读取流对象,并指定文件相关联
  7.                 FileReader fr=new FileReader("e:\\demo.txt");
  8.                 //为了提高读取流的操作,引入缓冲区
  9.                 BufferedReader br=new BufferedReader(fr);
  10.         //调用readLine()方法,读取一行数据
  11.                 //String s=br.readLine();
  12.         //用while循环读取整个文件的数据
  13.                 String s=null;
  14.                 while((s=br.readLine())!=null){
  15.                         System.out.println(s);
  16.                 }
  17.                 br.close();
  18.         
  19.         }
  20. }
复制代码
在demo.txt中存放的内容是:dfgdf   dfdf
中间有3个空格,打印出来的结果为:dfgdf   dfdf
我的疑问是:
while((s=br.readLine())!=null){
System.out.println(s);
}这句意思 是不为空才打印,空格是怎么打印出来的。
我自己想的结果是:dfgdfdfdf
作者: HM张超    时间: 2013-3-13 13:41
while((s=br.readLine())!=null){
                                        System.out.println(s.replace(" ", ""));
                                }
循环这样写就可以!实现你要的效果。
因为br.readLine()已经把文本里的值读取出来了!空格有算有值,更何况还有字母,它怎么都不会为null的!
作者: HM王琦    时间: 2013-3-13 15:16
while((s=br.readLine())!=null){
System.out.println(s);
这里的s=(br.readLine())!=null//表示的是读取一样字符串返回值不为空,如果"    asdfaf"这是一个要读取的字符串,照你的想法就是打印的"asdfaf",其实呢?空格也是字符,它也是字符串中的内容,为什么不打印呢?
s=(br.readLine())!=null//代表的是没有元素可以读取了,才返回null,
作者: 樊其杰    时间: 2013-3-13 15:27
HM王琦 发表于 2013-3-13 15:16
while((s=br.readLine())!=null){
System.out.println(s);
这里的s=(br.readLine())!=null//表示的是读取一 ...

嗯 谢谢
作者: 437857487    时间: 2013-3-13 17:12
System.out.println(s);
}这句意思 是不为空才打印。没错但是空格也是不为空,其实空格也是字符,它也是字符串中的内容,是需要打印出来的




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