在java中从用户获取数据

时间:2015-03-29 01:48:21

标签: java

我尝试测试两种从用户获取数据的方法。我附上了2个错误 第一个错误:
enter image description here
第二个错误:
 enter image description here
我有第二个错误(Obeject is never closed)与我从Scanner类创建的每个对象!

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
    public class InputStreamReaderClass {
        public static void main(String[] args) {

    // Method 1:
    InputStreamReader reader = new InputStreamReader(System.in);
    BufferedReader buffer = new BufferedReader(reader);
    System.out.println("Type text 1: ");
    String text = buffer.readLine();



    //Method 2:
    Scanner scanner = new Scanner (System.in);
    System.out.println("Type text 2: ");
    String text2 = scanner.nextLine();
    }
}

1 个答案:

答案 0 :(得分:1)

方法1你必须解决。你必须处理错误。第二种方法的问题是警告,程序仍然可以在没有修复的情况下运行,但是养成关闭不使用的对象的习惯是个好主意。

方法1需要被try/catch语句包围,或者你需要抛出异常:

try{
    // Method 1:
    InputStreamReader reader = new InputStreamReader(System.in);
    BufferedReader buffer = new BufferedReader(reader);
    System.out.println("Type text 1: ");
    String line = buffer.readLine();
}catch(Exception e){
  //handle error
 }

这是因为BufferedReader.readLine()抛出异常,你需要处理它。您可以从Java documentation

获取更多信息

方法2,您需要关闭扫描仪对象:

//Method 2:
Scanner scanner = new Scanner (System.in);
String line2 = scanner.nextLine();
System.out.println("Type text 2: ");
scanner.close(); 

您不一定要关闭扫描仪,但这是一个很好的做法。