ホームページ >Java >&#&チュートリアル >Java のスキャナーと System.in を使用したリソース リークの処理
Java のスキャナーを使用したことがある場合は、リソースのリークを避けるためにスキャナーを閉じることが重要であることをご存知でしょう (特にファイルから読み取る場合)。しかし、System.in に関しては異なります。
通常、System.in を閉じたくないのは、それ以降の入力が停止されるためです。プログラムの他の部分でまだユーザー入力が必要な場合、これにより問題が発生する可能性があります。
Java の try-with-resources を使用すると、それが簡単になります。 System.in を閉じずにスキャナーが自動的に閉じられるため、ユーザー入力を安全に読み取ることができます。
一部の IDE (Eclipse や IntelliJ など) は、Scanner で潜在的なリソース リークにフラグを立て、すべてのインスタンスを同じように扱うことがあります。これは、特に System.in を使用する場合に誤解を招く可能性がありますが、これらの警告は無視しても問題ありません。
try-with-resources を使用して、System.in を開いたままスキャナが適切に閉じられていることを確認します。
System.in を手動で閉じないでください。 JVM に処理させます。
コード例:
try (Scanner objName = new Scanner(System.in)) { System.out.println("What's your name?"); String userName = objName.nextLine(); System.out.println("Hello, " + userName + "!"); }
以上がJava のスキャナーと System.in を使用したリソース リークの処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。