考虑到读取位于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));
最佳答案
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)