ホームページ > Java > &#&チュートリアル > System.in にリンクされているスキャナーを閉じるべきですか?

System.in にリンクされているスキャナーを閉じるべきですか?

Linda Hamilton
リリース: 2024-12-20 18:27:20
オリジナル
911 人が閲覧しました

Should I Close a Scanner Linked to System.in?

System.in にリンクされたスキャナーを閉じる

System.in にリンクされたスキャナーを閉じるのは難しい場合があります。開いているリソースを閉じることはコーディングの良い習慣ですが、System.in に接続されたスキャナーでこれを行うと、System.in 自体も閉じられます。ここで疑問が生じます: System.in に影響を与えずにスキャナーを閉じる方法はありますか?

解決策

最も簡単な解決策は、次の場合はスキャナーを閉じないことです。基礎となるストリームを閉じるつもりはありません。ほとんどの場合、プログラム全体に対応する単一のスキャナーを作成することをお勧めします。これにより、スキャナを繰り返し作成して閉じる必要がなくなります。

何らかの理由でスキャナを閉じる必要がある場合、オプションの 1 つは、同じ基礎となるストリームで新しいスキャナ インスタンスを作成することです。これにより、2 つのエンティティが分離され、System.in に影響を与えることなくスキャナを閉じることができます。

例を次に示します:

Scanner scanner = new Scanner(System.in);
// Use the scanner as needed...

// Create a new scanner with the same underlying stream.
Scanner newScanner = new Scanner(System.in);

// Close the first scanner.
scanner.close();

// Continue using the new scanner.
newScanner.nextInt();

// Close the second scanner.
newScanner.close();
ログイン後にコピー

このメソッドにより、System.in は影響を受けずに済みますが、次のことが可能になります。元の Scanner を閉じます。

複数の Scanner インスタンスを作成すると、パフォーマンスに影響を及ぼす可能性があることに注意することが重要です。パフォーマンスが懸念される場合は、プログラムの存続期間全体を通じて 1 つのスキャナーを使用するのが最善です。

以上がSystem.in にリンクされているスキャナーを閉じるべきですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート