IO中,system in问题求教

下面代码中,构造方法里定义了一个InputStream is=System.in,完成输入后就关闭is,

按照常理,每次new一个对象,构造方法都会被自动调用,那么InputStream is=System.in,和关闭is,每次都会运行一次,问题就出来了,经过几次测试,发现好像

System.in在上次被构造方法被调用后,再次new对象时,System.in没有打开,为什么?

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.Comparator;

public class Student 

{

String name;

int Chinese;

int Math;

int English;

Student() //throws IOException

{

  try

  {

    InputStream is=System.in;

    InputStreamReader isr=new InputStreamReader(is);

    BufferedReader br=new BufferedReader(isr);

    System.out.println("请输入学员姓名");

    this.name=br.readLine();

    System.out.println(is.available());

    System.out.println("请输入该学员语文成绩");

    this.Chinese = Integer.parseInt(br.readLine());

    System.out.println("请输入该学员数学成绩");

    this.Math = Integer.parseInt(br.readLine());

    System.out.println("请输入该学员英语成绩");

    this.English = Integer.parseInt(br.readLine());

    //br.close(); 不注释会报异常

 }

catch(IOException e){

System.out.println(e.toString());

      }

  }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值