2015-09-14 44 views
0

我正在使用FileInputStream讀取android手機上的文件。但是,當我使用FileInputStream.read將數據讀入數組時,返回值始終爲0.我檢查過路徑和文件名是否正確。可能的原因是什麼?FileInputStream讀取文件保持返回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

@SotiriosDelimanolis數據是一個數組。我發現這個問題是由初始化這個數組(數據)的大小造成的。 – Foreverniu

回答

2

這是唯一可能的,如果您提供了一個零長度的緩衝區,或在三參數讀取的情況下零計數。

NB寫行應

out.write(data, 0, readsize); 

和循環應該寫成

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

你的方式,你在流的末尾呼籲write(),這ISN」 t正確。

您也不需要初始化readsize

+0

如果inFilename引用空文件,那麼它是否也會發生? –

+1

@DavidConrad不,那會返回-1。 – EJP

+0

@EJP非常感謝。我沒有想到我放入的數組是0大小。你的回答幫助我解決了這個問題! – Foreverniu

相關問題