批量读取是否还需要循环与判断-1

来源:5-1 字节字符转换流

蛋黄酱0

2016-01-19 17:40

xxx.read()一个一个读需要判断!=-1来停止循环可以理解,为啥批量读取也需要循环和判断-1,批量读取不是直接把所有的内容都读到数组里再全都打印到控制台吗,为什么还需要循环和判断-1,我把循环和判断-1去掉也能打印完全啊,求大大指点

写回答 关注

3回答

  • 慕工程2957023
    2016-06-30 15:15:36

    我觉得原因是,即使是批量读取容量也是有限的,不一定能一次读完,所以要加循环

  • 梁XX
    2016-02-21 21:21:46

    我们来看API:

                    int tmpRead;
    		while((tmpRead=charReader.read())!=-1) {  
    		//.read() :Reads a single character.
    	        //The character read, or -1 if the end of the stream has been reached
    			charWriter.write(tmpRead);
    			}

    读取单个字符/字节,返回所读的单个字符(InputStreamReader)/字节(FileInputStream),否则当空或结尾的时候返回-1 。

    当读到字符/字节时, 赋值给tmpRead, 

    当读到结尾/该文件本身就是空,返回-1,-1结束,不存入output流


  • brucelwl
    2016-01-20 15:08:57

    需要的,因为批量多的时候,是读取你指定的长度,但是这时候并不应定会读完,所以仍然需要判断

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133754 学习 · 1030 问题

查看课程

相似问题