Java字节流文件操作
时间: 2024-12-11 19:13:53 浏览: 22
Java字节流文件操作是指通过字节流类来处理文件的读取和写入操作。Java提供了多种字节流类来处理不同类型的输入和输出操作。以下是一些常用的字节流类和它们的用法:
### 常用字节流类
1. **FileInputStream**:用于从文件中读取字节。
2. **FileOutputStream**:用于向文件中写入字节。
3. **BufferedInputStream**:为其他输入流添加缓冲功能。
4. **BufferedOutputStream**:为其他输出流添加缓冲功能。
### 示例代码
以下是一个简单的示例,展示了如何使用FileInputStream和FileOutputStream来读取和写入文件:
```java
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ByteStreamExample {
public static void main(String[] args) {
String inputFile = "input.txt";
String outputFile = "output.txt";
// 读取文件
try (FileInputStream fis = new FileInputStream(inputFile)) {
int content;
while ((content = fis.read()) != -1) {
System.out.print((char) content);
}
} catch (IOException e) {
e.printStackTrace();
}
// 写入文件
try (FileOutputStream fos = new FileOutputStream(outputFile)) {
String content = "Hello, World!";
fos.write(content.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
### 代码说明
1. **读取文件**:
- 使用`FileInputStream`类打开一个文件输入流。
- 使用`read()`方法逐字节读取文件内容,直到文件结束(返回值为-1)。
- 将读取的字节转换为字符并打印。
2. **写入文件**:
- 使用`FileOutputStream`类打开一个文件输出流。
- 使用`write()`方法将字符串内容转换为字节并写入文件。
### 缓冲流
为了提高文件操作的效率,通常会使用缓冲流`BufferedInputStream`和`BufferedOutputStream`。以下是一个使用缓冲流的示例:
```java
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class BufferedByteStreamExample {
public static void main(String[] args) {
String inputFile = "input.txt";
String outputFile = "output.txt";
// 读取文件
try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(inputFile))) {
int content;
while ((content = bis.read()) != -1) {
System.out.print((char) content);
}
} catch (IOException e) {
e.printStackTrace();
}
// 写入文件
try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(outputFile))) {
String content = "Hello, World!";
bos.write(content.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
### 代码说明
1. **读取文件**:
- 使用`BufferedInputStream`包装`FileInputStream`。
- 使用`read()`方法逐字节读取文件内容。
2. **写入文件**:
- 使用`BufferedOutputStream`包装`FileOutputStream`。
- 使用`write()`方法将字符串内容转换为字节并写入文件。
阅读全文