Java(io)字节流
字节流以 字节(8 位)为单位进行读写操作,是最基础的 IO 方式。它可以处理任何类型的数据(如图片、音频、视频、二进制文件等),因为所有数据在底层都是以字节形式存储的。
-
核心类:
- 输入流:
InputStream
(抽象基类),常用子类有FileInputStream
、ByteArrayInputStream
等。 - 输出流:
OutputStream
(抽象基类),常用子类有FileOutputStream
、ByteArrayOutputStream
等。
- 输入流:
-
特点:
- 通用性强:能处理所有类型的文件。
- 无字符编码问题:直接操作字节,不涉及字符编码转换。
- 效率较低:每次读写一个字节,适合处理小文件或二进制数据。
- 字节流的使用:
- FileInputStream:用于从文件读取字节数据。
- FileOutputStream:用于向文件写入字节数据。
import java.io.*;public class ByteStreamExample {public static void main(String[] args) {// 定义源文件和目标文件的路径String sourceFile = "input.jpg";String targetFile = "output.jpg";// 使用try-with-resources语句自动关闭资源try (FileInputStream fis = new FileInputStream(sourceFile);FileOutputStream fos = new FileOutputStream(targetFile)) {// 创建一个缓冲区来提高读写效率byte[] buffer = new byte[1024];int bytesRead;// 从输入流读取数据到缓冲区,并写入输出流while ((bytesRead = fis.read(buffer)) != -1) {fos.write(buffer, 0, bytesRead);}System.out.println("文件复制成功!");} catch (IOException e) {System.out.println("文件操作出错: " + e.getMessage());}}
}