急救:DataInputStream中的read的问题

Holinfox 2006-11-30 09:55:49
大家好!
 请问大家,DataInputStream中的read(byte[] b)是不是一定要读到b.lengh个字节它才会返回的?比如,我要一次读取100个字节,如果输入流里没有100个字节,read会不会在那里等待,直到有100个字节可读为止?

 我现在在用read()接收大量的字节流,而且一次只能读取100个字节,不能多,也不能少,我发现,有些时候,read()在不足100个字节的情况下,也会返回,不足的字节全部用0填充了,怎么回事呢?

 要实现每次只能读取100个字节(在不足100个字节时,应该等待,直到有100个字节可读为止),应该怎么做?

 谢谢!
...全文
173 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
butnet 2006-12-07
  • 打赏
  • 举报
回复
public byte[] readFull(InputStream in,int length)throws Exception{
byte[] buf=new byte[length];
int start=0
int every=0;
while(start<length){
every=in.read(buf,start,length-start);
if(every==-1)break;
start+=every;
}
return buf;
}
Holinfox 2006-12-07
  • 打赏
  • 举报
回复
自己顶一下!

62,614

社区成员

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

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