慕侠3348009
2018-08-26 23:35
我这样理解的,数组里面最后一个的索引是-1,所以读到-1就结束了,可是不知道为什么又转换成16进制了,b输出来到底是什么内容?
int b;
while((b=in.read())!=-1){
}
这里定义的b 是in.read()读到有值的话就是整数,并把值赋值给b,然后与-1做比较,不等于-1,说明还有值,可以继续读取,如果是-1,里面没有值了,退出循环
/**
* Reads a byte of data from this input stream. This method blocks
* if no input is yet available.
*
* @return the next byte of data, or <code>-1</code> if the end of the
* file is reached.
* @exception IOException if an I/O error occurs.
*/
public int read() throws IOException {
return read0();
}
说的很清楚,the next byte of data, or <code>-1</code> if the end of the
* file is reached.没有值是-1,读的是里面的数据,不是索引
你可以去看看源码,里面表示read方法的返回值,源码里面有写如果没有结尾,输出值就不为-1
文件传输基础——Java IO流
133755 学习 · 1030 问题
相似问题