FileInputStream读取文件保持返回0

时间:2015-09-14 22:41:02

标签: java android inputstream java-io

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

1 个答案:

答案 0 :(得分:2)

只有在提供零长度缓冲区时才可以执行此操作,或者在三参数读取的情况下使用零计数。

NB写行应

out.write(data, 0, readsize);

并且循环应该写为

while ((readsize = in.read(data)) > 0)
{
    out.write(data, 0, readsize);
}

你拥有它的方式,你在流的末尾调用write(),这是不正确的。

您也无需初始化readsize