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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 樊其杰 于 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

点评

如果问题解决了,请尽快将帖子分类改为已解决,谢谢  发表于 2013-3-13 18:27

评分

参与人数 1技术分 +1 收起 理由
洪建超 + 1

查看全部评分

4 个回复

正序浏览
System.out.println(s);
}这句意思 是不为空才打印。没错但是空格也是不为空,其实空格也是字符,它也是字符串中的内容,是需要打印出来的
回复 使用道具 举报
HM王琦 发表于 2013-3-13 15:16
while((s=br.readLine())!=null){
System.out.println(s);
这里的s=(br.readLine())!=null//表示的是读取一 ...

嗯 谢谢
回复 使用道具 举报
while((s=br.readLine())!=null){
System.out.println(s);
这里的s=(br.readLine())!=null//表示的是读取一样字符串返回值不为空,如果"    asdfaf"这是一个要读取的字符串,照你的想法就是打印的"asdfaf",其实呢?空格也是字符,它也是字符串中的内容,为什么不打印呢?
s=(br.readLine())!=null//代表的是没有元素可以读取了,才返回null,

评分

参与人数 1技术分 +1 收起 理由
洪建超 + 1

查看全部评分

回复 使用道具 举报
while((s=br.readLine())!=null){
                                        System.out.println(s.replace(" ", ""));
                                }
循环这样写就可以!实现你要的效果。
因为br.readLine()已经把文本里的值读取出来了!空格有算有值,更何况还有字母,它怎么都不会为null的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马