【问题标题】:InputStreamReader or Console for Java I/O用于 Java I/O 的 InputStreamReader 或控制台
【发布时间】:2011-01-05 09:20:53
【问题描述】:

在 Java 中获取用户输入哪种方法更好?

reader = new BufferedReader(new InputStreamReader(System.in));

或 通过使用控制台--> Console c = System.console();

这两者有什么区别,用哪一个。或者除了这两种方法还有其他更好的方法吗?

【问题讨论】:

    标签: java console bufferedinputstream


    【解决方案1】:

    最近在 Java (Java 6) 中引入了控制台,以便更轻松地读取和写入命令行。因此,我会使用控制台。

    【讨论】:

      【解决方案2】:

      我建议你 Scanner 类从控制台获取用户输入

      Scanner in = new Scanner(System.in);
      
      in.next();
      int i = in.nextInt();
      float f = in.nextFloat();
      double d = in.nextDouble();    
      String s = in.nextLine();
      

      还有其他漂亮的方法

      但是在这两者之间我推荐你使用控制台

      【讨论】:

        【解决方案3】:

        它们几乎相同,但是,控制台有其他方法可以安全地从用户那里读取信息(例如密码),并返回更直观的结果来判断底层平台是否确实支持控制台操作或在非交互环境

        【讨论】:

          【解决方案4】:

          恕我直言,它们完全不同。正如文档所说:

          访问基于字符的方法 关联的控制台设备(如果有) 使用当前的 Java 虚拟机。

          所以实现是特定于操作系统的,而不是独立于平台的(可能有也可能没有)。

          使用 Consol,即使您无法从标准输入读取数据:

          echo 123 | java Test
          

          如果测试使用控制台,它将无法工作。所以用户必须从控制台提供输入。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-06-25
            • 2011-06-20
            • 2012-06-02
            • 2023-03-17
            相关资源
            最近更新 更多