在java中使用io流批量处理文件
2022-06-23 本文已影响0人
永远爱你ol
最近在工作中需要批量处理一些文件,为了提高效率节省时间,自己写了一个处理的java小工具,分享一下。
首先说明一下,我所处理的文件是在一个文件夹中有多个子文件夹,每个子文件夹里面只有一个同名的文件。其他不同的文件存放方式,可以根据实际情况修改一下。
示例代码分享:
public String helloSpringBoot() throws IOException {
List<File> allFileList = new ArrayList<>();
File dir=new File("e:\\zdir"); //文件放在e盘的zdir文件夹中
File[] fileList = dir.listFiles();
for(File file : fileList){
File dir2=new File("e:\\zdir\\"+file.getName());
allFileList.add(dir2);
System.out.println(dir2.getName());
}
for(File file : allFileList) {
String filePath = "e:\\zdir\\"+file.getName()+"\\_index.md";
//读取后文件存放到新的文件夹zdir2中
File newDir=new File("e:\\zdir2\\"+file.getName());
File newFile=new File("e:\\zdir2\\"+file.getName()+"\\_index.md");
newDir.mkdir();
newFile.createNewFile();
BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(newFile));
int count = 0;
String line;
int start0 = 0;
int start = 0;
int start2 = 0;
while ((line = bufferedReader.readLine()) != null) {
count++;
//删除文件的部分内容
if (line.contains("此处写所需要删除内容的第一段")) {
line = "";
start0 = count;
continue;
}
if (start0 != 0) {
if (line.contains("此处写所需要删除内容的最后一段的下一段")) {
start0 = 0;
} else {
line = "";
continue;
}
}
//添加文件的部分内容
if (line.contains("此处写需要添加内容处的上一行")) {
start2 = count;
}
if (start2 != 0) {
if (count == start2 + 1) {
bufferedWriter.newLine();
bufferedWriter.write("此处写需要添加的内容");
bufferedWriter.newLine();
bufferedWriter.write(line);
continue;
}
}
bufferedWriter.write(line);
bufferedWriter.newLine();
}
bufferedReader.close();
bufferedWriter.close();
}
return "success";
}