Java资源泄漏未关闭

时间:2017-01-20 07:25:06

标签: java console resource-leak

我正在编写一个程序,我希望控制台输出用户输入的其余数字。但是,每次编译代码时,控制台都会打印出来,我收到此控制台错误:

 1 problem (1 warning)
 Compiler is using classPath = '[C:\Users\Darien Springer\Documents\Java,   C:\Users\Darien Springer\Desktop\drjava-beta-20160913-225446.exe]';  bootClassPath = 'null'
 ----------
 1. WARNING in C:\Users\Darien Springer\Documents\Java\PrintDigits.java (at   line 5)
     Scanner scnr= new Scanner(System.in); 
        ^^^^
 Resource leak: 'scnr' is never closed
 ----------
 1 problem (1 warning)

我不确定控制台的意思是“资源泄漏”。我已经在几个不同的地方查找了它(包括API和其他Stack Overflow问题),我不确定为什么没有打印到控制台。我正在使用DrJava程序以防万一有人在想。

以下是我的参考代码:

import java.util.Scanner;

  public class PrintDigits {
    public static void main(String [] args) {
       Scanner scnr= new Scanner(System.in);
       int userInput = 0;
       int positiveInt = 0;

    System.out.println("enter a positive integer:");
    userInput = scnr.nextInt();

    positiveInt = userInput % 10;
    System.out.println(positiveInt);


 return;
 }
}

1 个答案:

答案 0 :(得分:3)

所有警告都表示,您从未在代码中的任何位置调用java.io.IOException: read failed, socket might closed or timeout, read ret: -1 at android.bluetooth.BluetoothSocket.readAll(BluetoothSocket.java:900) at android.bluetooth.BluetoothSocket.readInt(BluetoothSocket.java:912) at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:531) 。要让它消失,请在使用完扫描仪后致电scnr.close();

scnr.close();