Java入力ストリームのクローズ
2023-10-08 19:03:24
質問
Java InputStreamsを使用する際のclose()メソッドの使用方法についていくつか質問があります。 私が見たり、多くの開発者から読んだりしたところでは、InputStream が不要になったら、常に明示的に close() を呼び出すべきだということでした。 しかし、今日、私はJavaプロパティ・ファイルの使用について調べていたのですが、私が見つけたすべての例には次のようなものがありました。
Properties props = new Properties();
try {
props.load(new FileInputStream("message.properties"));
//omitted.
} catch (Exception ex) {}
上記の例では、InputStreamを使用した後は到達できないので、明示的にclose()を呼び出す方法はありません。 多くの人が言うように、明示的に閉じるということと矛盾するようですが、私はInputStreamの似たような使い方をたくさん見てきました。 OracleのJavaDocsに目を通しましたが、Properties.load()メソッドがInputStreamを閉じるかどうかは書かれていません。 私は、これが一般的に受け入れられるのか、それとももっと次のようなことをするのが好ましいのか疑問に思っています。
Properties props = new Properties();
InputStream fis = new FileInputStream("message.properties");
try {
props.load(fis);
//omitted.
} catch (Exception ex) {
//omitted.
} finally {
try {
fis.close();
} catch (IOException ioex) {
//omitted.
}
}
どちらの方法がより良く、より効率的なのでしょうか? あるいは、それは本当に重要なことなのでしょうか?
どのように解決するのですか?
の例では
プロパティ・チュートリアル
を閉じる
FileInputStream
はロード後に明示的に閉じますので
load
メソッドに責任があるのではなく、あなたに責任があるのです。
// create and load default properties
Properties defaultProps = new Properties();
FileInputStream in = new FileInputStream("defaultProperties");
defaultProps.load(in);
in.close();
参考までに アパッチハーモニー の実装を確認しました。 プロパティ を実装しており ではなく はロード時にストリームを閉じます。
関連
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
Solve モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory エラー
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
型に解決できない エラー解決
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
eclipse にリソースリーク:'in' が閉じない
-
コンストラクタDate()が未定義である問題
-
git pull appears現在のブランチに対するトラッキング情報がありません。
-
Java JDKのダイナミックプロキシ(AOP)の使用と実装の原理分析
-
ApiModel と @ApiModelProperty の使用法
-
[解決済み] Bitmapオブジェクトに画像を読み込む際にOutOfMemoryが発生する問題