outputStream.write 大文件
时间: 2023-11-22 21:54:54 浏览: 262
当我们需要写入大文件时,使用单个 `write` 方法会导致内存溢出或缓存溢出等问题。为了解决这个问题,我们可以使用缓冲区来写入数据。
以下是使用缓冲区写入大文件的示例代码:
```java
File inputFile = new File("input.txt");
File outputFile = new File("output.txt");
try (InputStream inputStream = new FileInputStream(inputFile);
OutputStream outputStream = new FileOutputStream(outputFile);
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream)) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = bufferedInputStream.read(buffer)) != -1) {
bufferedOutputStream.write(buffer, 0, bytesRead);
}
} catch (IOException e) {
e.printStackTrace();
}
```
在这个示例中,我们使用了 `BufferedInputStream` 和 `BufferedOutputStream` 来创建一个缓冲区。在循环中,我们读取缓冲区中的数据并将其写入输出流中。这种方法可以避免内存溢出和缓存溢出等问题,并且能够高效地写入大文件。
阅读全文