0

アプリを作成しているときに、かなりの障害に遭遇しました。これが私の問題です:

次のようにファイル入力ストリームを初期化しようとしています:

FileInputStream fis
fis = openFileInput(selectedFile);

次に、この1行を後で入れます:

byte[] input = new byte[fis.available()];

問題は、コードの両方のビットが try/catch ステートメントを必要とすることと、2 番目のブロックが fis を認識できないことです。これは、try/catch 内で初期化されたためです。これが私のコードです:

private void openFile(String selectedFile) {
        String value = "";
        FileInputStream fis;
        try {
            fis = openFileInput(selectedFile);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }


        try {
            byte[] input = new byte[fis.available()];
        } catch (IOException e) {
            e.printStackTrace();
        }

私は何をすべきか?(前もって感謝します)

4

3 に答える 3

0

FileInputStream fis = null;変数を最初に宣言するときに設定します。

IOException はファイルが見つからないという例外もキャッチするため、このようなコードを実行することもできます。

String value = "";
FileInputStream fis;
try {
  fis = openFileInput(selectedFile);
  byte[] input = new byte[fis.available()];
} catch (IOException e) {
  e.printStackTrace();
}
于 2013-06-01T01:45:50.397 に答える