java将一个文件拆分写成2个文件
时间: 2024-10-11 16:13:27 浏览: 12
在Java中,你可以通过IO流和缓冲区技术将一个大文件拆分成两个较小的文件。下面是一个简单的示例,假设你有一个名为`inputFile.txt`的大文件,你想将其分为两部分,每部分保存到`outputFile1.txt`和`outputFile2.txt`:
```java
import java.io.*;
public class FileSplitter {
public static void main(String[] args) throws IOException {
String inputFile = "inputFile.txt";
String outputFile1 = "outputFile1.txt";
String outputFile2 = "outputFile2.txt";
int blockSize = 500; // 每部分大小(字节数)
FileInputStream fis = new FileInputStream(inputFile);
FileOutputStream fos1 = new FileOutputStream(outputFile1);
FileOutputStream fos2 = new FileOutputStream(outputFile2);
byte[] buffer = new byte[blockSize];
int bytesRead;
int totalBytesRead = 0;
while ((bytesRead = fis.read(buffer)) != -1) {
fos1.write(buffer, 0, bytesRead);
totalBytesRead += bytesRead;
if (totalBytesRead >= blockSize) { // 当读取到一块大小就切换到第二个文件
fos1.close();
fos1 = new FileOutputStream(outputFile2); // 开始写入第二个文件
totalBytesRead = 0;
}
}
// 如果还有剩余的数据未写入第一个文件,继续写回第一个文件
if (totalBytesRead > 0) {
fos1.write(buffer, 0, totalBytesRead);
}
// 关闭所有流
fis.close();
fos1.close();
fos2.close();
System.out.println("文件拆分完成");
}
}
```
这个程序会读取输入文件,每次从原文件读取`blockSize`字节,并将其写入到第一个输出文件中,直到第一个文件满为止,然后切换到第二个输出文件继续写入,直到读完整个输入文件。