すべての例で、誰もが次のようなコードを見つけることができます:
DataInputStream inputStream = null;
try {
inputStream = new DataInputStream( new FileInputStream("file.data"));
int i = inputStream.readInt();
inputStream.close();
} catch (FileNotFoundException e) {
//print message File not found
} catch (IOException e) { e.printStackTrace() }
このコードがFileNotFound
例外に遭遇したとき、inputStream
開いていなかったので、閉じる必要はありません。
しかし、なぜIOException
その catch ブロックで mets が表示されないのですかinputStream.close()
。この操作は、入力データの例外がスローされたときに自動的に実行されましたか? プログラムが入力に問題がある場合、これはストリームがすでに開いていることを意味するためです。