Java 数据流
在Java编程中,数据流(Stream)是一个核心概念,它使我们能够有效地处理输入和输出操作。数据流提供了一种从源读取数据和向目标写入数据的方式,这是几乎所有Java应用程序的基础部分。
什么是Java数据流?
Java数据流是一个抽象概念,代表着数据的流动通道。通过数据流,我们可以读取和写入各种数据源,如文件、网络连接、内存缓冲区等。
Java的I/O包(java.io
)提供了丰富的类来处理数据流操作,使得数据的输入输出变得简单且高效。
数据流的基本分类
Java中的数据流主要分为两大类:
- 字节流(Byte Stream) - 以字节为单位处理数据
- 字符流(Character Stream) - 以字符为单位处理数据
字节流与字符流的区别
特性 | 字节流 | 字符流 |
---|---|---|
处理单位 | 字节(8位) | 字符(16位Unicode) |
适用场景 | 二进制文件(图片、音频等) | 文本文件 |
基类 | InputStream/OutputStream | Reader/Writer |
字节流
字节流是Java I/O中最基础的流类型,用于处理二进制数据。
InputStream
InputStream
是所有字节输入流的抽象基类,定义了读取字节的基本方法。
常用子类包括:
FileInputStream
- 从文件读取字节ByteArrayInputStream
- 从字节数组读取字节BufferedInputStream
- 提供缓冲功能的输入流
基本用法示例
try (FileInputStream fis = new FileInputStream("example.dat")) {
int data;
while ((data = fis.read()) != -1) {
// 处理每个字节
System.out.print(data + " ");
}
} catch (IOException e) {
e.printStackTrace();
}