在InputStream和FileInputStream之间切换的简便方法?

时间:2013-06-19 20:36:33

标签: java android inputstream fileinputstream datainputstream

我写了一大堆代码,考虑了SD卡上的文本文件 我刚才意识到我还需要阅读位于Assets文件夹中的文本文件 查看我在下面发布的代码 如果可以这样做,我的问题就会得到解决 不幸的是,显然不允许以这种方式使用IF声明
目前,我唯一的选择是复制所有文件读取代码并将其放在一个单独的AsyncTask线程中(我的文件读取代码目前在AsyncTask后台线程中),但它大约有250行代码,所以它如果我不必复制它会更好。
任何建议将不胜感激。

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));

1 个答案:

答案 0 :(得分:1)

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

......或者更简洁......

 InputStream myStream = (switchToAsset == 1)
   ? getAssets().open(currentFilePath)
   : new FileInputStream(currentFilePath)