Java 中的 Stdin 和 Stdout

10 Sept 2024 | 4 分钟阅读

在浩瀚的编程语言海洋中,Java 就像一艘功能强大、用途广泛的船,让开发者能够承担复杂的软件开发项目。船员(或程序员)必备的两个要素是标准输入 (stdin)标准输出 (stdout),它们是 Java 程序与外界交流的媒介。

标准输入 (stdin) 的起源

通过标准输入,Java 程序可以接收用户输入。它代表了一种标准化,在动态网络中起着重要作用。在运行 Java 程序时,标准输入可以耐心等待我们的输入,为软件之间提供两个通信通道。

那么,这在实际的编码世界中是如何工作的呢?让我们来分解一下。如果我们接触过 Java,可能会遇到一个名为 Scanner 的类。这个类就像一位外语翻译,帮助你的程序理解和处理我们接收到的信息。

考虑一个简单的 Java 程序,它要求用户输入姓名:

GreetUser.java

输出

Enter your name: Manoj
Hello, Manoj!

在上面的程序中,System.in 代表了标准的输入流,也就是 stdin。Scanner 类从这个流中读取输入,允许程序捕捉用户的姓名并给出个性化的问候。

理解标准输出 (stdout)

stdout 代表标准输出,它是 Java 程序将其结果、消息和任何其他输出传达给用户的路径。这就像船上的扩音器,向船员(或者在这种情况下,用户)宣布信息。

对于 Java 开发者来说,System.out.println() 语句是一个常见的场景,因为它经常用于在控制台上显示消息。让我们增强之前的示例,加入一些输出:

GreetUser.java

输出

Enter your name: Manoj
Hello, Manoj!
Welcome to the world of Java!

在这个修改后的程序中,第二行 System.out.println() 欢迎用户来到 Java 的世界。System.out 部分表示我们正在使用标准输出流 stdout 将消息显示在控制台上。

在 Java 程序中使用标准输入和标准输出

当标准输入和标准输出在交互式应用程序中联手时,真正的魔力就发生了。想象一个需要根据用户输入进行计算的场景。让我们创建一个 Java 应用程序来计算矩形的面积,以展示标准输入和标准输出之间的共生关系:

RectangleAreaCalculator.java

输出

Enter the length of the rectangle: 7.5
Enter the width of the rectangle: 4.2
The area of the rectangle is: 31.5

在这个例子中,程序要求用户输入矩形的长度和宽度,使用给定的值计算面积,然后输出结果。标准输入和标准输出之间的对话使程序更加用户友好和信息丰富。

正如任何经验丰富的船员都知道的,船并不是总是一帆风顺的。同样,设计错误也可能发生,妥善处理它们很重要。让我们回顾一下矩形面积计算器,并添加错误处理,以确保流畅的用户体验:

EnhancedRectangleAreaCalculator.java

输出

Enter the length of the rectangle: abc
Invalid input. Please enter numeric values.

在此版本中,我们将用户输入部分包装在 try-catch 块中,以便捕获用户输入非数字值时可能发生的任何 InputMismatchException。这确保了程序不会意外崩溃,而是向用户显示简单的错误消息。

它们是交互式技术,可以将你的静态脚本任务转化为交互式且有趣的应用程序,使 Java 编程语言成为应对各种软件开发挑战的理想工具。