hengly
2015-07-15 17:49
为什么要读到-1就结束,读到别的不行么,不是很懂
while ((c = bis.read()) != -1) {
bos.write(c);
bos.flush();// 刷新缓冲区
read
public abstract int read()
throws IOException
从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。
子类必须提供此方法的一个实现。
返回:
下一个数据字节;如果到达流的末尾,则返回 -1。
抛出:
IOException - 如果发生 I/O 错误。
从API的理解来看,read是每次读取一个byte,byte只有8位,范围就是0-255,只不过read将他作为一个32位的int值返回出来,正常情况时不可能返回负数的,所以返回一个负数肯定是特殊情况了。这是我的理解,希望对你有帮助。
书上写的一个返回整型的方法就不能简单的通过返回-1表示错误,因为-1很可能是一个完全合法的结果。
不会的,你建议去看看这个方法的API,说再多都不如看这个方法的源代码来的有效
方法定义是,当文件没有可读取内容时 返回-1,也就是文件已经读完后返回-1。
方法定义就是这样的,我们只能后接受。
.read()这个方法是读取的意思。如果有值就返回1 没有值得话返回-1
文件传输基础——Java IO流
133755 学习 · 1030 问题
相似问题