我是 Java 新手,我想知道在控制台中读取用户输入的最佳选择是什么。据我所知,有以下三种方法:
Console console = System.console();
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
Scanner reader = new Scanner(System.in);
我应该选择哪一个?为什么是那个而不是其他?
读取数字的方法非常有用(尽管在使用 nextInt() 等后跟 nextLine() 时要小心)。异常是未经检查的,因此您不必编写样板 try/catch 块。
除了这些你还可以使用datainputstream等。
现在 BufferedReader 从字符输入流中读取文本,缓冲字符,以便高效读取字符、数组和行。可以指定缓冲区大小,也可以使用默认大小。默认值足够大,足以满足大多数用途。
Where Scanner 是一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。扫描器使用分隔符模式将其输入分解为标记,默认情况下与空格匹配。然后可以使用各种 next 方法将所得令牌转换为不同类型的值。 Scanner 用于从流的内容中解析 token,而 BufferedReader 只是读取流,不做任何特殊的解析。
另请检查以下链接,它一定会对您有所帮助.......
Console 类以与平台无关的方式实现,以处理不同操作系统的控制台输入。所有操作系统都有一个控制台/外壳,但它们在实现上有很大不同。所以 Console 类为您提供了一个独立于 Java 平台的运行时类来访问密码输入等内容。
Scanner 用于从流的内容中解析 token,而 BufferedReader 只读取流,不做任何特殊的解析。