0

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

1 に答える 1

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)
于 2013-06-19T20:39:29.440 に答える