解决InputStream.read读取数据出现丢失的情况
2018-04-09 09:24
423 查看
InputStream.read(byte[] b)
InputStream.read(byte[] b,int off,int len)
这两者都可批量读取数据,进入byte[]缓存。
但是即便是实现给定好byte[]的长度,指定长度进行读取,也不一定能完全读取数据。
这里的做法可用以下: byte[] bodyReceived = new byte[dataLen];
int pos = 0;
while (pos < dataLen && -1 != (readLen = dataIn.read(bodyReceived, pos, dataLen - pos))) {
pos += readLen;
}
message = new String(bodyReceived, encode).trim();int pos用于记录当前已经读取了多少长度
int dataLen用于记录本次读取了多少长度,记录后累加进pos中
InputStream.read(byte[] b,int off,int len)
这两者都可批量读取数据,进入byte[]缓存。
但是即便是实现给定好byte[]的长度,指定长度进行读取,也不一定能完全读取数据。
这里的做法可用以下: byte[] bodyReceived = new byte[dataLen];
int pos = 0;
while (pos < dataLen && -1 != (readLen = dataIn.read(bodyReceived, pos, dataLen - pos))) {
pos += readLen;
}
message = new String(bodyReceived, encode).trim();int pos用于记录当前已经读取了多少长度
int dataLen用于记录本次读取了多少长度,记录后累加进pos中
相关文章推荐
- php中,从数据库中读取数据后,出现乱码的情况及解决方法
- Yii2 联表查询数据丢失,即出现主键覆盖情况的解决方法
- sql出现在并发情况下offset+limit丢失数据,重复数据的解决办法
- STM32F103ZE单片机FSMC接口读取NAND Flash芯片K9F1G08U0E的数据时出现数据丢失的解决办法
- php中,从数据库中读取数据后,出现乱码的情况及解决方法
- Sql Server 如何解决多并发情况下,出现的多个相同ID数据
- OLEDB方式读取Excel丢失数据的原因和解决方法(转)
- filebeat - logstash 多行合并 解决数据丢失以及无法读取最后一行
- 编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释
- php读取csv文件,在linux上出现中文读取不到的情况 解决方法
- 用GCDAsyncSocket解决AsyncSocket读取数据时丢失部分消息
- 遇到的问题(一):智能家居中WIFI模块设备在接收底层家具设备串口数据时由于断帧而出现的指令丢失的情况处理
- Windows下php页面读取 mysql"中文数据"出现乱码的解决方法
- 编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释
- 解决方法:ASP读取数据库中的中文数据出现乱码的问题
- 解决python2.X从json文件中读取数据进行unicode转码情况
- 如何解决E4A在XP系统下出现内存不能为read崩溃情况的问题
- OLEDB方式读取Excel丢失数据的原因和解决方法
- asp.net 解决使用OLEDB导入excel数据时同时包含文本和数字的列无法正常读取情况
- delphi ADOQuery读取数据时出现EVariantInvalidArgError的解决