java编写两个方法,分别用来拆分文件和合并文件,指定文件绝对路径和文件名
时间: 2024-09-19 09:06:55 浏览: 39
Excel多个文件合并、同时删除多个文件指定行、文件拆分
5星 · 资源好评率100%
在Java中,我们可以创建两个方法,分别用于拆分文件和合并文件。这里我将提供一个简单的示例,假设我们正在处理文本文件,并且文件内容是一行一行的数据,我们先拆分再合并:
**1. 拆分文件方法(splitFile)**:
```java
import java.io.*;
public class FileSplitter {
public void splitFile(String filePath, String fileName) throws IOException {
File inputFile = new File(filePath + fileName);
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
// 假设每行数据是一个新的子文件
int lineNumber = 0;
String line;
while ((line = reader.readLine()) != null) {
String subFileName = "part_" + lineNumber++;
writeToFile(line, filePath + "/" + subFileName);
}
reader.close();
}
private void writeToFile(String content, String outputPath) throws IOException {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(outputPath))) {
writer.write(content);
}
}
}
```
在这个`splitFile`方法中,我们逐行读取输入文件并将其写入到一系列名为"part_1", "part_2", 等的新文件。
**2. 合并文件方法(mergeFiles)**:
```java
import java.io.*;
public class FileMerger {
public void mergeFiles(String folderPath, String prefix, String outputFile) throws IOException {
List<String> partFiles = getFilePaths(folderPath, prefix);
StringBuilder sb = new StringBuilder();
for (String file : partFiles) {
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
sb.append(reader.readLine()).append("\n"); // 假设文件内容之间有换行符
}
}
writeToFile(sb.toString(), outputFile);
}
private List<String> getFilePaths(String folderPath, String prefix) {
List<String> result = new ArrayList<>();
File dir = new File(folderPath);
if (dir.exists() && dir.isDirectory()) {
File[] files = dir.listFiles((f) -> f.getName().startsWith(prefix));
if (files != null) {
result.addAll(Arrays.asList(files));
}
}
return result;
}
private void writeToFile(String content, String outputPath) throws IOException {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(outputPath))) {
writer.write(content);
}
}
}
```
`mergeFiles`方法从指定的文件夹中找到所有以特定前缀开始的文件,然后将它们的内容合并到一个新的输出文件中。
阅读全文