java 怎么合并文件
时间: 2023-05-26 17:02:39 浏览: 171
合并两个文件的方法:
1. 利用 File 类的构造函数和 OutputStream 部分的实现合并,在保证文件存在的情况下将文件追加到指定文件中。
```java
public static void mergeFiles(File outFile, File... files) {
try (OutputStream os = new FileOutputStream(outFile, true)) {
for (File file : files) {
try (InputStream is = new FileInputStream(file)) {
byte[] buffer = new byte[1024];
int length;
while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
```
2. 利用 IO 流中的 SequenceInputStream 对象来连续读取两个或多个输入流并将其串连在一起。
```java
public static void mergeFiles(File outFile, File... files) {
try (OutputStream os = new FileOutputStream(outFile);
InputStream is = new SequenceInputStream(Collections.enumeration(Arrays.asList(files)))) {
byte[] buffer = new byte[1024];
int length;
while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);
}
} catch (IOException e) {
e.printStackTrace();
}
}
```
3. 通过递归的方式合并多个文件夹中的数据。
```java
public static void mergeFolders(File outputDir, File... inputDirs) {
if (!outputDir.exists()) {
outputDir.mkdirs();
}
for (File inputDir : inputDirs) {
if (inputDir.isDirectory()) {
mergeFolders(outputDir, inputDir.listFiles());
} else {
mergeFiles(new File(outputDir, inputDir.getName()), inputDir);
}
}
}
```
阅读全文