我尝试测试两种从用户获取数据的方法。我附上了2个错误
第一个错误:
第二个错误:
我有第二个错误(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();
}
}
答案 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();
您不一定要关闭扫描仪,但这是一个很好的做法。