我正在使用FileInputStream在Android手机上读取文件。但是,当我使用FileInputStream.read将数据读入数组时,返回值始终为0。我检查了路径和文件名是否正确。可能的原因是什么?
in = new FileInputStream(inFilename)
int readsize = 0;//Read size keep returning 0.
do{
readsize = in.read(data);
Log.d(Constants.TAG, "Readsize:"+readsize);
out.write(data);
} while(readsize > 0 );
最佳答案
仅当您提供了零长度的缓冲区,或者在读取三参数的情况下提供了零计数时,才有可能这样做。
注意:写入行应为
out.write(data, 0, readsize);
循环应该写成
while ((readsize = in.read(data)) > 0)
{
out.write(data, 0, readsize);
}
您拥有的方式是,在流的结尾处调用
write()
,这是不正确的。您也不需要初始化
readsize
。