2013-06-19 76 views
0

我寫了一大段代碼,用於讀取位於SD卡上的文本文件。
我剛剛意識到我將需要閱讀位於Assets文件夾中的文本文件。
查看我在下面發佈的代碼。
如果可以做到這一點,我的問題將得到解決。
不幸的是,以這種方式使用IF語句顯然是不允許的。

目前,我唯一的選擇是複製所有的文件閱讀代碼,並把它放在一個單獨的AsyncTask線程中(我的文件閱讀代碼目前在AsyncTask後臺線程中),但它大約有250行的代碼,所以如果我不需要複製它會更好。
任何建議,將不勝感激。在InputStream和FileInputStream之間切換的簡單方法是什麼?

if (switchToAsset == 1); 
{ 
InputStream myStream = getAssets().open(currentFilePath); 
} 
else 
{ 
FileInputStream myStream = new FileInputStream(currentFilePath); 
} 
DataInputStream in = new DataInputStream(myStream); 
BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
+0

你並不需要添加標籤標題;-) – Burkhard

+0

也許此http://計算器。 com/questions/5772233/android-converting-inputstream-to-fileinputstream?rq = 1會有幫助嗎? – Burkhard

回答

1
InputStream myStream; 
if (switchToAsset == 1) { // having a semicolon here is BAD BAD BAD 
    myStream = getAssets().open(currentFilePath); 
} else { 
    myStream = new FileInputStream(currentFilePath); 
} 

...甚至更簡潔...

+0

糟糕,沒有看到分號:) ......當我測試時,它不在那裏。非常感謝你的真棒回答!完美的作品!巨大的救濟,我不必重複所有的代碼。 :) –

相關問題