解决方案 »

  1.   

    你试试读一个大文件,大于1KB的文件,不用while那就只读了前面一点点
    你的bytes缓存数组只有1024字节大小,那么b.read(bytes)读一次最多只能读1024字节
    所以要保证能读大小大于1024字节的文件,你就要用while循环地读,直到读到文件尾
    (n=b.read(bytes))!=-1就是用来判断是否读到文件尾了,read会返回-1如果读到文件尾
      

  2.   

    这是初学的时候的经典例子,你这代码不需要用while,用while的例子是 和输出流一起使用的!!
    b.read(bytes) 的意思 
    从输入流b中读取一定数量的字节,并将其存储在缓冲区数组 bytes中,返回的是读入缓冲区的总字节数,如果因为已经到达流末尾而不再有数据可用,则返回 -1
      

  3.   

    你这个这么短,那当然不用while了。
    ((n=b.read(bytes))!=-1这个表达式就是判断是否还有内容,有就继续读,没有就不读了
      

  4.   

    因为你的数据少,一次可以读取完,要是10M,100M,500M的数据呢,你能一次读取完吗?
      

  5.   

    if(){
    ...//如果条件成立,执行其中的内容.然后跳出if语句块.
    }
    while(){
    ...//如果条件成立,执行其中的内容.然后再次判断条件是否成立.如果成立在执行语句块的内容.
    }
      

  6.   

    while  有个循环判断的作用   判断是否还有byte没有读
      

  7.   

    你去读个几M的文件,你的方法就不灵了!
    这时就需要用while循序来分多次读取了!
    ((n=b.read(bytes))!=-1表示是否读到文件尾
      

  8.   

    while =-1是判断内容是否到结尾、大文件的读取一个循环是不够的、
      

  9.   

    谢谢  现在懂了    当时就是没有理解缓存的意思。那么现在怎么读取全部的内容进行统计呢 ,缓存的只是存储了一部分的数据。
    用你第二个红框里注释掉的代码就是读取全部内容啊。。
    比如说我要统计里面A出现的次数怎么弄,如果这个文件的字节超过了1024那怎么通过bytes数组用for循环进行统计A出现的次数呢