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