美文网首页
在java中使用io流批量处理文件

在java中使用io流批量处理文件

作者: 永远爱你ol | 来源:发表于2022-06-23 17:12 被阅读0次

    最近在工作中需要批量处理一些文件,为了提高效率节省时间,自己写了一个处理的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";
        }
    

    相关文章

      网友评论

          本文标题:在java中使用io流批量处理文件

          本文链接:https://www.haomeiwen.com/subject/fnhmvrtx.html