`
flylynne
  • 浏览: 376088 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java读取文件夹下所有文件并替换文件每一行中指定的字符串

    博客分类:
  • JAVA
 
阅读更多

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;

public class ReadFile {

 public static void main(String[] args) {
  String filePath = "D:/a/"; //给我你要读取的文件夹路径
  File outPath = new File("E:/b/"); //随便给一个输出文件夹的路径(不存在也可以)
  readFolder(filePath,outPath);
 }
 
 /**
  * 读取文件夹
  * @return
  */
 public static void readFolder(String filePath,File outPath){
  try {
   //读取指定文件夹下的所有文件
   File file = new File(filePath);
   if (!file.isDirectory()) {
    System.out.println("---------- 该文件不是一个目录文件 ----------");
   } else if (file.isDirectory()) {
    System.out.println("---------- 很好,这是一个目录文件夹 ----------");
    String[] filelist = file.list();
    for (int i = 0; i < filelist.length; i++) {
     File readfile = new File(filePath + "\\" + filelist[i]);
     //String path = readfile.getPath();//文件路径
     String absolutepath = readfile.getAbsolutePath();//文件的绝对路径
     String filename = readfile.getName();//读到的文件名
     readFile(absolutepath,filename,i,outPath);//调用 readFile 方法读取文件夹下所有文件
    }
    System.out.println("---------- 所有文件操作完毕 ----------");
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
 /**
  * 读取文件夹下的文件
  * @return
  */
 public static void readFile(String absolutepath,String filename,int index,File outPath){
  try{
   BufferedReader bufReader = new BufferedReader(new InputStreamReader(new FileInputStream(absolutepath)));//数据流读取文件
   StringBuffer strBuffer = new StringBuffer();
   String empty = "";
   String tihuan = "";
   for (String temp = null; (temp = bufReader.readLine()) != null; temp = null) {
    if(temp.indexOf("/*") != -1 && temp.indexOf("*/") != -1){ //判断当前行是否存在想要替换掉的字符 -1表示存在
     tihuan = temp.substring(0, 9);//这里截取多长自己改
     temp = temp.replace(tihuan, empty);//替换为你想要的东东
    }
    strBuffer.append(temp);
    strBuffer.append(System.getProperty("line.separator"));//行与行之间的分割
   }
   bufReader.close();
   if(outPath.exists() == false){ //检查输出文件夹是否存在,若不存在先创建
    outPath.mkdirs();
    System.out.println("已成功创建输出文件夹:" + outPath);
   }
   PrintWriter printWriter = new PrintWriter(outPath+"\\"+filename);//替换后输出的文件位置(切记这里的E:/ttt 在你的本地必须有这个文件夹)
   printWriter.write(strBuffer.toString().toCharArray());
   printWriter.flush();
   printWriter.close();
   System.out.println("第 " + (index+1) +" 个文件   "+ absolutepath +"  已成功输出到    " +outPath+"\\"+filename);
  }catch(Exception e){
   e.printStackTrace();
  }
 }
}

分享到:
评论

相关推荐

    java对文件夹、文件、TXT的操作

    在Java编程语言中,对文件、文件夹以及文本文件(如TXT)进行操作是常见的任务。这些操作包括创建、删除、重命名、读取、写入以及遍历目录结构。以下将详细介绍Java中如何实现这些功能。 1. **创建文件与文件夹** ...

    合并指定文件夹下的文本文件源码

    将所有文本文件的内容合并到一个字符串变量中,每次读取一个文件后,将新内容追加到现有字符串。 4. **创建新文件并写入**: 当所有文件都读取完成后,可以使用`open()`函数以写入模式创建一个新的文本文件(在D...

    java关于文件的操作

    对于数据的查询和更新,我们需要解析每一行的内容,可能涉及到字符串的分割、比较、替换等操作。例如,如果每行存储一个键值对(key-value),我们可以使用`split()`方法来分离键和值: ```java String[] parts = ...

    批量查找文件内容替换

    例如,`grep -rl "search_string" /path/to/directory | xargs sed -i 's/search_string/replacement/g'` 这个命令组合能全局查找并替换目录下所有文件中的内容。 5. **注意事项**: - 在进行批量替换时,务必先...

    一个校验文件里是否含有非英文字符代码

    例如,在Java中,我们可以读取文件内容,然后遍历每个字符,判断其Unicode值是否在英文字符的范围内。以下是一个简单的Java代码示例: ```java import java.io.BufferedReader; import java.io.FileReader; import ...

    Java使用poi读取Excel文件例子

    这段代码会打开指定路径的Excel文件,读取第一个工作表的所有行和列,并打印出每个单元格的值。注意,`getRowNum()`返回的是非空行的索引,`getLastRowNum()`则返回的是最后一个非空行的索引加1,所以要在循环中加上...

    ACCP5.0 S1java第二章作业答案

    5. **字符串(String)**:Java中的String类是一个特殊的类,用于处理文本。学生需要掌握字符串的创建、比较、截取、拼接等操作。 6. **异常处理**:Java通过try-catch-finally结构进行异常处理,学生需要了解不同...

    Java Poi流 根据Word模板插入相应的文本、表格和图片,生成新的Word报告

    占位符通常是特定格式的字符串,如`{{text}}`,在程序中会被实际值所替换。 2. **插入文本**: - 在找到占位符后,可以使用`XWPFRun`的`setText()`方法来插入文本。如果需要设置字体、颜色、大小等样式,可以通过`...

    正则统计代码中空行、注释行、代码行纯JAVA

    首先,我们需要了解Java中处理字符串的主要工具:`java.util.regex`包。这个包提供了`Pattern`和`Matcher`类,它们是正则表达式的核心。`Pattern`类用于编译正则表达式,`Matcher`类则用来对目标字符串进行匹配操作...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例081 去掉字符串中的所有空格 101 实例082 汉字与区位码的转换 102 第5章 面向对象技术应用 103 5.1 Java中类的定义 104 实例083 自定义图书类 104 实例084 温度单位转换工具 105 实例085 域的默认初始化值 106 ...

    常用工具类方法1

    - `write`:将字符串写入指定文件。 - `listFiles`:根据过滤器列举目录下所有文件。 - `copyDirectory`:复制整个目录结构。 - `forceDelete`:强制删除文件,即使文件被锁定。 5. **org.apache....

    大工软院大二姜国海小学期-第二次作业&huffman;.zip

    3. 编写程序求出1万以内的所有素数,并将这些素数输出到一个文本文件中,每行文本只包含一个素数数据。 该文本文件内容要求可以用记事本程序来查看。 4. 编写程序求出1万以内的所有素数,然后再判断这些素数中...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    9.2.7 替换字符串中的内容 226 9.2.8 String对象——磐石刻字 227 9.3 String类的最佳拍档——StringBuffer类 227 9.3.1 StringBuffer:专业操纵字符 228 9.3.2 String和StringBuffer一个都不能少 229 9.4 最...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    9.2.7 替换字符串中的内容 226 9.2.8 String对象——磐石刻字 227 9.3 String类的最佳拍档——StringBuffer类 227 9.3.1 StringBuffer:专业操纵字符 228 9.3.2 String和StringBuffer一个都不能少 229 9.4 最...

    android ant 多渠道批量打包Demo

    5. **替换渠道标识的脚本**:Ant脚本中会有一个任务读取channels.txt,然后遍历文件中的每个渠道名,对APK进行签名并替换字符串资源。 6. **源代码和资源文件**:包括Android项目的Java源代码、资源文件(如布局、...

Global site tag (gtag.js) - Google Analytics