一见穿心 一见穿心
关注数: 43 粉丝数: 27 发帖数: 269 关注贴吧数: 3
【java】BufferedReader的问题 下面是我写的一个测试程序,如果不把Input1.close();屏蔽调的话,就无法输入Input2,报的错误是:java.io.IOException: Stream closedat java.io.BufferedInputStream.getBufIfOpen(Unknown Source)at java.io.BufferedInputStream.read(Unknown Source)at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(Unknown Source)at sun.nio.cs.StreamDecoder$CharsetSD.implRead(Unknown Source)at sun.nio.cs.StreamDecoder.read(Unknown Source)at java.io.InputStreamReader.read(Unknown Source)at java.io.BufferedReader.fill(Unknown Source)at java.io.BufferedReader.readLine(Unknown Source)at java.io.BufferedReader.readLine(Unknown Source)at test.main(test.java:33)请问这是怎么回事啊?我第一个BufferedReader使用完后关闭,然后第二个BufferedReader是重新申请的啊?为什么第一个关闭了,第二个会提示Stream closed呢?以下是我的程序test.java,请了解的朋友给解释一下,谢谢!import java.io.*;public class test {static int num;static String str;public static void main(String[] args) {try{System.out.print("Input number: ");BufferedReader Input1 = new BufferedReader(new InputStreamReader(System.in));num = Integer.parseInt(Input1.readLine());Input1.close();//如果屏蔽该句则可以输入Input2}catch(IOException e1){e1.printStackTrace();}try{System.out.print("Input string: ");BufferedReader Input2 = new BufferedReader(new InputStreamReader(System.in));str = Input2.readLine();Input2.close();}catch(IOException e2){e2.printStackTrace();}System.out.println("number = " + num + "\nString = " + str);}}
1 下一页