我正在使用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 );
答案 0 :(得分:2)
只有在提供零长度缓冲区时才可以执行此操作,或者在三参数读取的情况下使用零计数。
NB写行应
out.write(data, 0, readsize);
并且循环应该写为
while ((readsize = in.read(data)) > 0)
{
out.write(data, 0, readsize);
}
你拥有它的方式,你在流的末尾调用write()
,这是不正确的。
您也无需初始化readsize
。