Java 输入和输出
输入和输出 (I/O) 是程序与外部世界(如用户、文件、网络)交互的方式。本章将重点介绍 Java 中最基本的 I/O 操作:从控制台读取标准输入和向控制台写入标准输出。
标准输出 (Standard Output)
我们其实已经一直在使用标准输出了。System.out 是一个 PrintStream 对象,代表了标准输出流,通常是您的控制台或终端窗口。
System.out.println()
打印传递给它的内容,并在末尾自动添加一个换行符。这是最常用的输出方法。
System.out.print()
打印内容,但不添加换行符。后续的输出会紧跟在当前输出的后面。
System.out.printf()
提供格式化的输出,类似于 C 语言的 printf 函数。它允许您使用格式说明符来控制输出的格式。
%s: 字符串%d: 十进制整数%f: 浮点数%n: 平台独立的换行符
标准输入 (Standard Input)
要从控制台读取用户的输入,最简单、最现代的方式是使用 java.util.Scanner 类。
使用 Scanner 类
- 导入
Scanner类: 在您的 Java 文件顶部添加import java.util.Scanner;。 - 创建
Scanner对象: 创建一个Scanner实例,并将其连接到标准输入流System.in。 - 使用读取方法: 调用
Scanner对象的方法来读取不同类型的数据。 - 关闭
Scanner: 使用完毕后,调用close()方法释放资源。
常用 Scanner 方法:
nextLine(): 读取一行完整的文本(直到用户按下回车)。next(): 读取下一个单词(以空白字符为分隔符)。nextInt(): 读取一个整数。nextDouble(): 读取一个双精度浮点数。hasNextInt()/hasNextDouble(): 检查输入流中是否还有下一个指定类型的令牌。
示例:一个简单的交互式程序
注意: 当混合使用
nextInt()和nextLine()时,可能会遇到问题。因为nextInt()只读取数字,而将换行符留在输入流中。下一个nextLine()会立即读到这个换行符并返回一个空字符串。一个常见的解决方法是在nextInt()之后额外调用一次scanner.nextLine()来消耗掉这个多余的换行符。
文件 I/O 简介
除了标准 I/O,Java 还提供了强大的 API 来读写文件,主要位于 java.io 和 java.nio 包中。这些 API 允许您以字节流或字符流的形式处理文件内容。
我们将在后续的“文件处理”章节中详细探讨如何使用这些类来创建、读取、写入和管理文件。