java的inputstream的问题,高手来看看

来源:百度知道 编辑:UC知道 时间:2024/05/01 00:10:35
为了提高效率,采用read(byte[] b)的方法读取数据。

如果说byte[] b的大小为1000;

那么用read(byte[] b)读的时候,是每次读到的数据满1000了,处理之后清空,再接着读吗。那如果读到最后就剩600了,不足1000了,那怎么处理。
就返回600的数据吗

这里明白的人 给指点指点

请看看 api 文档, read(byte[] b) 返回int型,表示实际读取的byte数目, 不需要清空 byte[],
int i = read(byte[] b);
// 如果此时 i == 600;即 b.length == 600;

比如我想读到 byte[] 后,写入到一个 outstream中的话,

for (int c=0; c<i; c++) out.write(b[c]);,