在Java中输入



如果有人可以提供帮助,我会感到困惑。尝试搜索网络但没有得到任何令人满意的答案。

为什么不像输出一样,我们不简单地使用System.in.somemethod()在Java中输入输入?像使用System.out.println()一样,为什么不像System.in那样呢?为什么要有较长的输入过程?

System.in(InputStream(提供的唯一方法是read的过载。当然,您可以做类似的事情:

    byte[] bytes = new byte[5];
    System.in.read(bytes);
    System.out.println(Arrays.toString(bytes));

从控制台读取五个字节。但这具有以下缺点:

  • 您需要处理检查的IOException。(上面的代码段未显示(
  • 很难使用字节。(除非您特别想要它们(
  • 您通常只想读取输入,直到行结束为止。因此,很难知道一条线的末端在哪里。

这就是为什么人们使用 Scanner s将System.in流包裹成更易于用户友好的原因。

从命令行中获取输入总是比仅输出数据更棘手的。这是因为没有办法知道输入在语义上是正确的,正确的,甚至是句法正确的。

如果您只想从 System.in读取 bytes ,那么输入的很多不确定性消失了。在这种情况下,只有两件事要考虑:I/O错误和输入结束 - System.out也存在两个。唯一可能很棘手的另一件事是InputStream可能无法返回单个调用中请求的所有字节,以 read

因此,从System.in读取数据并不难;解释数据 - 通常归结为解析数据或验证数据 - 是困难的部分。这就是为什么Scanner类经常用于理解输入的原因。

,就像您不能以相同的方式使用System.out.println()而不是使用System.in.somemethod()而不是CC_18而不是System.in.read()

相关内容

  • 没有找到相关文章

最新更新