Java调用Scanner类对象时提示警告Resource leak: 'sc' is never closed和多次调用Scanner类对象的close()方法报错

Question 1: Java调用Scanner类对象时警告Resource leak: 'sc' is never closed

Answer : 提示翻译为:资源泄露 sc没有关闭(其中sc为Scanner类的对象)

                 出现这个警告的原因是因为创建了一个Scanner类对象sc

                 sc一直在调用System.in输入流一直在占用资源没有得到释放

                 可以在调用Scanner类对象sc后使用sc.close();来释放资源

                 这样就不会再有警告Resource leak: 'sc' is never closed

 

Question 2: 多次调用Scanner类对象的close()方法报错

Answer : 在该Scanner类中调用的是System.in输入流进行输入

                 而其调用后一直在占用资源,创建一个和多个Scanner类对象没什么区别

                 但Scanner类对象的关闭方法close()只能调用一次,调用后会关闭输入流

                 在调用close()方法后即使再创建Scanner对象也无法使用System.in输入流,使用后会报错

                 故应谨慎使用Scanner类对象的close()方法,仅应在System.in输入流使用结束后再调用close()方法

                 

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值