缓冲读取器 vs 控制台 vs 扫描程序

2022-08-31 20:16:53

嗨,我是新手,我想知道在控制台中读取用户输入的最佳选择是什么,据我所知,有3种方法可以做到这一点:Java

  1. Console console = System.console();
  2. BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
  3. Scanner reader = new Scanner(System.in);

我应该选择哪一个?为什么是那个而不是其他的?


答案 1

缓冲阅读器

扫描器

安慰

  • 从 Java 1.6 开始
  • 引发未经检查的异常
  • 并非始终可用(例如,如果输入/输出被重定向,以及在 Eclipse 中)
  • 可以读取
  • 底层读取器可以读取单个字符和字符数组(但在行边界处停止)
  • 可以读取密码(即在不显示字符的情况下读取)

建议:扫描仪

读取数字的方法非常有用(尽管在使用 nextInt() 等时要小心,后跟 nextLine())。异常是未选中的,因此您不必编写样板试验/捕获块。


答案 2

除了这些,您还可以使用数据输入流等。

现在 BufferedReader 从字符输入流中读取文本,缓冲字符,以便有效地读取字符、数组和行。可以指定缓冲区大小,也可以使用默认大小。默认值足以满足大多数用途。

其中 Scanner 是一个简单的文本扫描器,它可以使用正则表达式解析基元类型和字符串。扫描仪使用分隔符模式将其输入分解为标记,默认情况下,分隔符模式与空格匹配。然后,可以使用各种后续方法将生成的令牌转换为不同类型的值。Scanner 用于从流的内容中解析令牌,而 BufferedReader 仅读取流,而不执行任何特殊解析。

还检查下面的链接,它一定会帮助你.......

http://www.javawebtips.com/50474/


推荐