相关疑难解决方法(0)

关闭链接到System.in的扫描程序

我有一个Scanner链接System.in.现在,在使用之后Scanner,我应该关闭它,因为它是不好的编码实践,让它打开.但是,如果我关闭Scanner,我也将关闭System.in!任何人都可以告诉我如何关闭Scanner没有关闭System.in(如果有任何方式).

java java.util.scanner

30
推荐指数
3
解决办法
1万
查看次数

关闭扫描仪而不关闭System.in

我正在尝试将我的应用程序中一个经常使用的大部分内容重新分解为单独的方法,以使其更易于维护.

其中一些方法要求用户输入并进行输入验证,所以我使用了扫描仪和System.in但是当我关闭扫描仪时我也关闭了System.in

所以我的问题是,我是否可以通过使用CloseShieldInputStream屏蔽它来阻止System.in关闭,还是我应该开始将Scanner传递给方法?

java system.in java.util.scanner

12
推荐指数
2
解决办法
5972
查看次数

Java - 关闭扫描程序和资源泄漏

我正在学习Java并且正在开展一些有趣的项目.我遇到的一个问题是,当我使用一个Scanner对象时,Eclipse警告我:

资源泄漏:'扫描'永远不会关闭.

所以,我scan.close();在代码的末尾添加了一个并处理警告.

问题来自因为我在同一个包中也有其他类也使用了扫描程序对象,并且Eclipse告诉我分别关闭这些类中的扫描程序.但是,当我这样做时,它似乎关闭所有扫描仪对象,并在运行时出现错误.

以下是导致错误的原因示例:

import java.util.Scanner;
public class test2 {
    public static void main(String [] args) {
        Scanner scan = new Scanner(System.in);
        int test = 0;
        do {    
            //Do stuff
            test = scan.nextInt();
            System.out.println(test);

            scanTest scanTest = new scanTest();
            scanTest.test();
        } while (test != 0);

        scan.close();       
    }
}

import java.util.Scanner;
public class scanTest { 
    public void test() {
        Scanner scanner = new Scanner(System.in);
        int blah = scanner.nextInt();
        System.out.println(blah);
        scanner.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

scanTest类中关闭扫描仪并test2 …

java eclipse java.util.scanner

10
推荐指数
1
解决办法
3万
查看次数

标签 统计

java ×3

java.util.scanner ×3

eclipse ×1

system.in ×1