- 444 名前:デフォルトの名無しさん [2007/03/15(木) 12:12:22 ]
- BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(name)));
try { ... } finally { reader.close(); } とかって、素直で読みやすいコードだと思うんですが、 InputStreamReader や BufferedReader のコンストラクタで例外が発生したら name のファイルが開きっぱなしになってしまいますよね? (実際はもっと複雑なフィルタがかぶさってます。) ↓みたいに FileInputStream だけ別の変数にしとかないといけないんでしょうか? FileInputStream file = new FileInputStream(name); try { BufferedReader reader = new BufferedReader(new InputStreamReader(file)); try { ... } finally { reader.close(); } } finally { file.close(); } close() がダブってるんでキモイのと、これだともしかしてさらに InputStreamReader でもう一段 try しないといけないのかも・・・と、 なんだか釈然としないです。
|

|