Java 中的预定义流

2024 年 9 月 10 日 | 阅读 3 分钟

Java 作为一种功能强大且广泛使用的编程语言,提供了丰富的功能来高效地处理输入和输出操作。预定义流是这一功能的重要组成部分,它允许 Java 程序与其环境进行交互,包括从外部源读取数据以及将输出写入各种目标。

在本节中,我们将深入探讨 Java 中的预定义流,介绍它们是什么、它们如何工作以及我们如何在程序中使用它们。

Java 中的流

在 Java 中,流是一系列数据元素,支持各种计算操作。流可以分为两类:输入流和输出流。

  • 输入流:这些流用于从源读取数据。它们提供从不同类型的源(如文件、网络连接或内存中的数据)读取字节或字符的方法。
  • 输出流:另一方面,输出流用于将数据写入目标。它们提供向各种目标(如文件、网络连接或内存缓冲区)写入字节或字符的方法。

Java 中的预定义流

Java 提供了三个预定义流,所有 Java 程序都可以自动访问它们。

System.in

类型: InputStream

描述:此流代表标准输入,通常连接到键盘。它允许您读取用户输入的数据。

System.out

类型: PrintStream

描述:此流代表标准输出,通常连接到控制台。它用于打印程序的输出。

System.err

类型: PrintStream

描述:与 System.out 类似,它用于输出,但通常保留用于错误消息。

这些预定义流是 `java.lang.System` 类的静态变量,并在 Java 虚拟机 (JVM) 启动时创建。默认情况下,它们连接到控制台,但可以重定向到其他源或目标,从而为处理输入和输出提供了极大的灵活性。

使用预定义流

使用 System.in 读取输入

要通过标准输入流从用户读取数据,您可以使用 `InputStreamReader` 和 `BufferedReader` 等类。以下是从用户读取一行文本的示例:

文件名: ReadingInput.java

输出

Enter your name: Adam 
Hello, Adam!

使用 System.out 和 System.err 编写输出

使用 System.out 和 System.err 流打印输出非常简单。您可以使用 `print()` 和 `println()` 方法来实现此目的。

文件名: PrintMsg.java

输出

This is standard output.
This is an error message.

重定向预定义流

可以将这些预定义流重定向到不同的源或目标。这对于自动化测试或与文件或其他 I/O 资源进行交互很有用。

文件名: GreetingProgram.java

输出

Enter your name: Manoj
Hello, Manoj!

结论

Java 中的预定义流是处理程序中输入和输出操作的基本工具。了解如何有效地使用 `System.in`、`System.out` 和 `System.err` 可以极大地提高您创建交互式和功能性应用程序的能力。此外,能够重定向这些流还为自动化任务和与各种 I/O 源交互提供了强大的机制。