こんにちは、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で質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java jdk17.06のインストーラーが起動しない 1 2023/03/27 21:58
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
- Java mac mini 2009 でのmac OS における Java の入れ替えについて 1 2022/12/27 19:23
- ゲーム Ps5で、マイクラJava版って出来ますか?今マイクラ統合版でやってて、マイクラJava版もやってみ 1 2023/02/07 20:25
- C言語・C++・C# C#の基本文法が詳しく書かれている教科書的な本ありますか 2 2023/02/11 03:48
- Java JavaでWebページ作成 7 2023/07/21 21:09
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
java と javax の違いは?
-
CLASSPATHを設定しても、『Clas...
-
javacのコンパイルでファイルが...
-
Java コンソールが起動しない
-
Javaでのエラーについて
-
jdk-1_5_0_07でのコンパイルエラー
-
java用語集
-
AntでのJunitの試験
-
-Applet表示でのjava.lang.Clas...
-
JAVA実行時エラーについて教え...
-
JavaMail関係でエラーが出ます
-
テーブル名が日本語だとクエリ...
-
JavaでMp3再生
-
android-studioがインストール...
-
JSPファイルで生じるエラーをど...
-
正規表現について質問です。 カ...
-
VBAの「for i=1 to cells(…」...
-
vba クリップボードクリアにつ...
-
IISワーカープロセスが原因でCP...
-
TOMCATとANDROIDSTUDIOの違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Javaでのエラーについて
-
java と javax の違いは?
-
javaからデータベースに接続 エ...
-
CLASSPATHを設定しても、『Clas...
-
javacのコンパイルでファイルが...
-
JasperExceptionのエラーログの...
-
マイクラ Ender IO 入れたらク...
-
System.inをClose()すると例外...
-
JAVA実行時エラーについて教え...
-
javaサーブレット upload時
-
Eclipseにdllがうまく読み込めない
-
JSFで、マネージビーンに画面の...
-
javaのGUIツールキット
-
propertiesが読み込めなくてnul...
-
DBから全権検索したデータをjsp...
-
テーブル名が日本語だとクエリ...
-
android-studioがインストール...
-
struts2環境構築で不具合が出て...
-
log4jを使用し、JAVAのバッチプ...
-
Tomcatのweb.xmlの設定について
おすすめ情報