readPassword()を使用してコンソールから読み取る関数があります。この関数は、1回のプログラム反復で数回呼び出されます。ただし、readPassword()行に到達すると、javaio例外が発生し続けます。finally節からclose()ステートメントを削除すると、このエラーが消えることに気づきました。なぜこれが発生し、いつリーダーを適切に閉じる必要がありますか?
public void Func()
{
Console console = System.console();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
if (console == null)
System.out.println("Error!");
try
{
char[] pwd = console.readPassword();
String password = new String(pwd);
System.out.println("PW: " + password);
String input = reader.readLine();
System.out.println("UserNm: " + input);
} catch (IOException e) {
System.out.println("IO EXCEPTION");
} finally {
if (reader != null)
{
try
{
reader.close();
}
catch (IOException e)
{
System.out.println("error");
}
}
}
return null;
}
助けてくれてありがとう!