Android 读取文件数据
来源:互联网 发布:谷歌翻墙软件下载 编辑:程序博客网 时间:2024/06/06 07:44
byte[] buffer = new byte[1024];
FileInputStream fis = null;
try {
fis = new FileInputStream(dir+fileName);
while(fis.read(buffer,0,buffer.length) != -1){
showInfo(buffer);
buffer = null;
buffer = new byte[1024];
}
} catch (IOException e) {
e.printStackTrace();
}
问题:使用上面代码进行读取数据,一开始无红色字体两行代码时,当文件超过1024B的时候,发现读取的数据并不是完整的文件数据信息,
而是会多出一些数据。
定位:通过比对数据发现多出的数据恰好是上一次读取的数据末尾部分,怀疑是再次调用 fis.read(buffer,0,buffer.length)接口时,buffer
并不会自动清除,数据还是保存着上次的数据,从而导致最后获取到的数据中有上一次读取的数据。
验证:添加红色两行代码进行初始化buffer,读取数据正常。通过跟踪read源码未找到对数据初始化部分。
总结:在涉及到需要循环读取某数据时,不管接口的处理如何,最好都要对buffer进行初始化。
- Android 读取文件数据
- Android-读取文件数据
- Android - 读取JSON文件数据
- Android 数据存储与读取:文件
- android 读取raw文件中的数据
- 3.android 读取文件中的数据
- Android - 读取文件存储的数据
- Android - 读取XML文件中的数据
- android 读取资源文件的数据
- 【Android实战】json文件读取并将数据写入文件
- Android读写文件 获取文件并读取写入数据
- Android文件读写操作--读取Assets中的文件数据
- Android 存储数据之1 读取文件和存储文件
- 读取.csv文件数据
- MFC读取文件数据
- DBF 文件数据读取
- 从文件读取数据
- 文件读取数据
- mysql连接参数详解
- android选择图片或拍照图片上传到服务器(包括上传参数)
- 多线程的零学习(一)
- 矩阵基础知识
- Case when ....then的用法
- Android 读取文件数据
- /dev/mapper/VoLGroup00-LogVol00 占空间100%
- 理解Load Average做好压力测试
- stopPropagation, preventDefault 和 return false 的区别
- spring+ibatic+maven分布式事务
- hdu2154(dp)
- Auditing Database Use
- jersey调用webservice
- 自动包装对象