入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

InputStream的read方法读取字节不完全的问题

创建时间:2015-04-07 投稿人: 浏览次数:1741

关于InputStream.read(byte[] b)和InputStream.read(byte[] b,int off,int len)这两个方法都是用来从流里读取多个字节的,有经验的程序员就会发现,这两个方法经常 读取不到自己想要读取的个数的字节。比如第一个方法,程序员往往希望程序能读取到b.length个字节,而实际情况是,系统往往读取不了这么多。仔细阅读Java的API说明就发现了,这个方法 并不保证能读取这么多个字节,它只能保证最多读取这么多个字节(最少1个)。因此,如果要让程序读取count个字节,最好用以下代码:

Java代码  收藏代码
  1. InputStream inStream = btSocket.getInputStream();
  2. int length = 20;
  3. byte[] temp = new byte[length];
  4. int count = 100;  
  5. byte[] b = new byte[count];  
  6. int readCount = 0; // 已经成功读取的字节的个数  
  7. while (readCount < count) {  
  8.     readCount += inStream.read(b, readCount, count - readCount);  
  9. }  
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像