Java 7 で try-with-resources を使用してリソースを正常に閉じる方法
try-with-resources を使用して Java 7 でリソースを正常に閉じる方法
Java では、ファイル、ネットワーク接続、データベース接続などのリソースを使用する必要があることがよくあります。これらのリソースを使用した後、リソースを解放してメモリ リークを回避するには、プログラム内でこれらのリソースを明示的に閉じる必要があります。 Java 7 では、新しい糖衣構文である try-with-resources が導入され、リソースをより適切に閉じることができるようになりました。
Java 7 より前は、通常、リソースを閉じるために try-catch-finally を使用していました。たとえば、ファイルを読み取るとき、コードは次のようになります。
FileInputStream fis = null; try { fis = new FileInputStream("file.txt"); // 读取文件的操作 } catch (IOException e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } }
このメソッドはより面倒で、リソースの終了を処理する追加のコードを記述する必要があり、例外が発生してリソースが停止する可能性があります。適時閉店となります。
Java 7 では、try-with-resources ステートメントを使用してリソースをより簡潔に閉じることができます。 try-with-resources を使用すると、try ステートメントの括弧内に close 操作を入れることができ、Java は try ステートメントの最後でリソースを自動的に閉じます。たとえば、上記のコードは次のように書き換えることができます:
try (FileInputStream fis = new FileInputStream("file.txt")) { // 读取文件的操作 } catch (IOException e) { e.printStackTrace(); }
上記のコードでは、try-with-resources を使用して FileInputStream オブジェクトを宣言します。try ステートメントが終了すると、Java は自動的に次の close メソッドを呼び出します。 FileInputStream を使用してリソースを閉じます。 try ステートメント ブロックで例外が発生した場合、catch ステートメントが例外をキャッチして処理します。
try-with-resources は複数のリソースを同時に宣言することもでき、宣言された順序で順番にクローズされます。たとえば、2 つのファイルの内容を同時に読み取ります。
try (FileInputStream fis1 = new FileInputStream("file1.txt"); FileInputStream fis2 = new FileInputStream("file2.txt")) { // 读取文件的操作 } catch (IOException e) { e.printStackTrace(); }
上記のコードでは、セミコロンを使用して複数のリソースの宣言を区切っており、それらは最後に次々と閉じられます。 try ステートメント。
さらに、カスタム クラスを使用してリソースを自動的に閉じることもできます。必要なのは、カスタム クラスに AutoCloseable インターフェイスを実装し、close メソッドをオーバーライドすることだけです。たとえば、カスタム ネットワーク接続クラスを作成します。
public class MyConnection implements AutoCloseable { public MyConnection() { // 进行连接的操作 } // 执行一些操作 @Override public void close() throws Exception { // 关闭连接的操作 } }
次に、このカスタム クラスを使用するときに、try-with-resources ステートメントで直接宣言できます。 try-with-resources ステートメントの最後で、Java は自動的に MyConnection クラスの close メソッドを呼び出して接続を閉じます。
要約すると、try-with-resources はリソースを閉じるための洗練された方法であり、コード内でより簡潔にリソースを解放し、一般的なリソース リークの問題を回避するのに役立ちます。一部の Java 組み込みリソースを自動的に閉じるだけでなく、カスタム クラスを使用してリソースを自動的に閉じることもできます。コードを記述するときは、try-with-resources ステートメントを積極的に使用してコードを改善し、コードの可読性と堅牢性を向上させる必要があります。
以上がJava 7 で try-with-resources を使用してリソースを正常に閉じる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4
