java 标准输入流_关于Java从标准输入流读取数据的问题

我现在的实现方法是java.util.Scannercin=newjava.util.Scanner(System.in);//Readdatafromstandardinstream.inti=cin.nextInt();//CloseScannercin.close();//*********************...

我现在的实现方法是

java.util.Scanner cin=new java.util.Scanner(System.in);

//Read data from standard in stream.

int i = cin.nextInt();

//Close Scanner

cin.close();//*********************

//Other operations.

return;

我就想知道,如果去掉加星的一行,IDE提示我资源泄露,这要紧吗?

在C++里设计良好的类都有完整的析构函数,像这样分配到栈里的对象都能及时正确析构,如果类的设计者在类的析构函数中写下了释放资源的代码,就无需客户代码显示释放资源了。

java好像不常有析构函数(因为垃圾收集),但这种close()没写真的会导致资源泄露吗?

如果System.in是标准输入流,那么close()会影响到它吗?

如果这些代码出现在某个递归函数中,会出现什么难以看到的问题吗?

C++转型Java新手,一些奇怪的问题还请海涵~

例如

private int GetInteger() {

Scanner cin = new Scanner(System.in);

boolean Loop = false;

int Temp;

do

try {

Loop=false;

Temp=cin.nextInt();

}

catch(InputMismatchException Exc)

{

Loop=true;

}

while(Loop);

cin.close();

return Temp;

}

正确吗?

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值