2013-06-19 42 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

糟糕,没有看到分号:) ......当我测试时,它不在那里。非常感谢你的真棒回答!完美的作品!巨大的救济,我不必重复所有的代码。 :) –

相关问题