关于流的一个小问题 本帖最后由 a3111006354 于 2014-08-25 11:09:51 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 想问一下为什么这段代码会出错,另外如果不在finally中将bReader关闭的话,就有没错了,这又是为什么 请问报什么错?然后你关闭bReader的时候加一个非空判断if(bReader!=null),试试 close本身没问题,但是System.in本身是全局静态的,你在test1里把它close掉,但是又在main里循环调用test1,也就是间接调用了关闭的System.in,它是已关闭的,所以就报错了 因为你关闭bReader的时候连带把System.in也关掉了另外你的外层while也不对,你这样死循环新建对象,堆很快就爆了下面帮你改了个程序,应该是你要的效果public class StreamTest { public static void main(String[] args) { new StreamTest().test1(); } public void test1() { BufferedReader bReader = new BufferedReader(new InputStreamReader( System.in)); System.out.println("Input:"); try { String input; while ((input = bReader.readLine()) != null) { System.out.println("Message From User: " + input); } } catch (IOException e) { e.printStackTrace(); } finally { try { bReader.close(); } catch (IOException e) { e.printStackTrace(); } } }} 同样的“循环热点” 结果Java快于C#30多秒! 想用java做一个基于B/S结构的系统,要学什么? Vector中存放Vector来实现动态二维数组的问题 java开发中JComboBox2在可编辑状态下怎样获取手动输入的值? 不能解释的现象,望高手指教~~~谢谢 请问为什么RandomAccessFile 出来的文件不一样? 为什么JSplitPane只能往左移,不能往右移 求救 这个句子怎么翻译好? float,double HashMap是不是有序的,LinkedHashMap是不是有序的 java多线程问题,求大神解答
另外你的外层while也不对,你这样死循环新建对象,堆很快就爆了下面帮你改了个程序,应该是你要的效果public class StreamTest { public static void main(String[] args) {
new StreamTest().test1();
} public void test1() {
BufferedReader bReader = new BufferedReader(new InputStreamReader(
System.in));
System.out.println("Input:"); try {
String input;
while ((input = bReader.readLine()) != null) {
System.out.println("Message From User: " + input);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}