Java 中的输入流159


输入流是 Java 编程中用于从数据源(例如键盘、文件或网络)读取数据的机制。Java 提供了多种输入流类型,每种类型都适用于读取不同数据源或提供不同的功能。

键盘输入

最基本的形式的输入是键盘输入。以下代码段显示如何使用 Scanner 类从键盘读取行和数字输入:```java
import ;
public class KeyboardInput {
public static void main(String[] args) {
Scanner scanner = new Scanner();
// 读取一行输入
("请输入你的名字:");
String name = ();
// 读取一个数字(整数)输入
("请输入你的年龄:");
int age = ();
("你好," + name + ",你的年龄是 " + age);
}
}
```

文件输入

Java 也允许从文件中读取数据。以下代码段显示如何使用 File 类和 Scanner 类读取文本文件:```java
import ;
import ;
import ;
public class FileInput {
public static void main(String[] args) {
try {
// 创建一个 File 对象
File file = new File("");
// 创建一个 Scanner 对象
Scanner scanner = new Scanner(file);
// 从文件中读取所有行
while (()) {
// 读取并打印每一行
String line = ();
(line);
}
// 关闭 Scanner 对象
();
} catch (IOException e) {
();
}
}
}
```

网络输入

在 Java 中,可以使用套接字从网络读取数据。以下代码段显示如何使用 ServerSocket 和 Socket 类建立服务器端,并从客户端接收输入:```java
import ;
import ;
import ;
import ;
public class NetworkInput {
public static void main(String[] args) {
try {
// 创建一个 ServerSocket 对象
ServerSocket serverSocket = new ServerSocket(1234);
// 等待客户端连接
Socket socket = ();
// 创建一个 Scanner 对象
Scanner scanner = new Scanner(());
// 从客户端读取所有行
while (()) {
// 读取并打印每一行
String line = ();
(line);
}
// 关闭 Scanner 对象
();
// 关闭 Socket 对象
();
// 关闭 ServerSocket 对象
();
} catch (IOException e) {
();
}
}
}
```

数据验证

在读取输入时,经常需要验证输入是否有效或符合特定的要求。Java 提供了多种实用程序类,如 Pattern 和 Matcher,用于验证用户输入是否与特定模式匹配。```java
import ;
import ;
public class InputValidation {
public static void main(String[] args) {
// 定义正则表达式模式
String pattern = "^[a-zA-Z0-9]+$";
// 创建 Pattern 对象
Pattern regex = (pattern);
// 创建 Matcher 对象
Matcher matcher = ("输入字符串");
// 检查输入是否匹配模式
boolean isMatch = ();
// 根据匹配结果采取相应操作
if (isMatch) {
// 输入有效
} else {
// 输入无效
}
}
}
```

其他输入流类型

除了上述类型之外,Java 还提供了其他输入流类型,用于处理各种数据源和格式:* BufferedInputStream:从基础输入流读取数据时提供缓冲。
* DataInputStream:从读取的字节流中读取基本数据类型(例如整数、浮点数和布尔值)。
* ObjectInputStream:从序列化对象流中读取对象。
* PipedInputStream:从管道中读取数据。

选择合适的输入流类型非常重要,因为它可以提高性能并确保可靠地读取数据。

2024-11-24


上一篇:Java方法执行顺序:理解控制流

下一篇:Java 数组:整型的入门指南