
こんにちは、tokopokoといいます。
■次のプログラムを実行すると、エラーになります。
なぜエラーになるのか、ご存知の方はいらっしゃいませんか。
import java.io.*;
class TestInput {
public static void main(String[] args) {
System.out.println("first = \"" + getInputValue("first?") + "\"");
System.out.println("second = \"" + getInputValue("second?") + "\"");
}
public static String getInputValue(String message) {
String returnString = "";
System.out.print(message);
BufferedReader input = null;
try {
input = new BufferedReader(new InputStreamReader(System.in));
returnString = input.readLine();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return returnString;
}
}
■実行例
D:\>javac TestInput.java
D:\>java TestInput
first?100
first = "100"
second?java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:145
)
at java.io.BufferedInputStream.read(BufferedInputStream.java:308)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at TestInput.getInputValue(TestInput.java:14)
at TestInput.main(TestInput.java:5)
second = ""
■私の環境は以下の通りです。
OS: Microsoft Windows XP Professional SP2
java: java version "1.6.0_03"
No.1ベストアンサー
- 回答日時:
メソッドの最初の呼び出しでSystem.inをclose()したので、それを再openしないかぎり次以降の呼び出しはIOExceptionになります。
われわれ一般のプログラマがSystem.inを再生成/再オープンすることはできないので、close()しないほうがいいですね。お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Tomcatのweb.xmlの設定について
-
javaからデータベースに接続 エ...
-
JSFで、マネージビーンに画面の...
-
vba クリップボードクリアにつ...
-
CrystalReportsのバージョン確...
-
visual stadio 参照問題
-
IISワーカープロセスが原因でCP...
-
AccessとVBの違いについて
-
プログラミング言語について
-
XMLとUMLの相違点?
-
VC6.0 と Studio2008の違い
-
Javaセキュリティによってブロ...
-
Java環境の下準備で困っています。
-
バージョン番号とリリース番号...
-
javacとjavaのバージョン違い
-
VisualStudio2003...
-
DataGridに表示される書式について
-
unzip32.dllの利用について(64b...
-
gitでバージョン指定してダウン...
-
VBScript 月を二桁で取得したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Javaでのエラーについて
-
javaからデータベースに接続 エ...
-
java と javax の違いは?
-
struts2環境構築で不具合が出て...
-
マイクロソフトのコミュミティ...
-
autoCAD2017で面積を計測して、...
-
Win32 API メニューのfType,fMa...
-
Tomcatでエラー
-
DBから全権検索したデータをjsp...
-
propertiesが読み込めなくてnul...
-
マイクラ Ender IO 入れたらク...
-
マイクラがクラッシュします。
-
System.inをClose()すると例外...
-
JasperExceptionのエラーログの...
-
$_SERVER['HTTP_USER_AGENT'] ...
-
JSFで、マネージビーンに画面の...
-
javacのコンパイルでファイルが...
-
BufferedInputStreamのreadメソ...
-
log4jを使用し、JAVAのバッチプ...
-
【javadoc】パッケージを一括で...
おすすめ情報