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()方法

                 

猜你喜欢

转载自blog.csdn.net/Ninewind/article/details/88603276