我正在使用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

08-04 05:27