InputStream中的available()方法的使用问题
看api中说不能用这个去分配byte[]数组大小,原文如下:NotethatwhilesomeimplementationsofInputStreamwillreturn...
看api中说不能用这个去分配byte[]数组大小,原文如下:
Note that while some implementations of InputStream will return the total number of bytes in the stream, many will not. It is never correct to use the return value of this method to allocate a buffer intended to hold all data in this stream.
可是还是看到很多这样的写法
new byte[in.available()];
求指导。 展开
Note that while some implementations of InputStream will return the total number of bytes in the stream, many will not. It is never correct to use the return value of this method to allocate a buffer intended to hold all data in this stream.
可是还是看到很多这样的写法
new byte[in.available()];
求指导。 展开
3个回答
展开全部
上面说的很清楚啊,这个方法的实现,有的返回字节总数,有的不是,所以不能这么开数组,然后妄图用这个数组存储所有数据,有些这么开可能是实现是返回总字节数的,也有可能是确定缓冲区大小
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有的情况通过available取到的字节数可能不是流总的字节数。建议不这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询