各位高手,哪个清楚InputStream的public int read(byte[] b,int off,int len)的用法

itisonlylove_yy 2009-08-08 12:23:51
while(true){
byte[] b = new byte[1024];
int nRead = input.read(b,0,1024);
}
在这个循环中每次最多只能读取1024个字节,然后放入b;但偏移量是如何计算的;既是不是第一次循环后偏移量是1023,第二次循环后偏移量是2047,以此类推;请各个高手解释一下;拜托
...全文
441 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yao2007 2009-08-08
  • 打赏
  • 举报
回复
off指的是b这个byte数组的偏移量。返回值是实际读取的字节数,因为可能缓冲里没有1024个字节给你读取。
archko 2009-08-08
  • 打赏
  • 举报
回复
byte[] b = new byte[1024];
while(true){
int nRead = input.read(b,0,1024);
}
好像是读取了多少,input就会消耗多少,读完了,input就是空了.
itisonlylove_yy 2009-08-08
  • 打赏
  • 举报
回复
懂了;原来OFF是数组的偏移量,我一直以为是读取的文件的偏移量;多谢你们了;大侠
gesanri 2009-08-08
  • 打赏
  • 举报
回复
你数组最大就1024个字节,偏移量怎么超过1023呢?只能将输入流中最多 len 个数据字节读入字节数组。尝试读取多达 len 字节,但可能读取较少数量。以整数形式返回实际读取的字节数。类 InputStream 的 read(b, off, len) 方法只重复调用方法 read()

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧