java扫描目录文件_Java之扫描目录,修改文件内容

这是一个Java工具类,用于批量查找并替换指定目录下文件(如.properties文件)中的特定字符串。程序首先定义了需要替换的源字符串和目标字符串,然后遍历指定目录下的所有文件,读取文件内容,逐行检查并替换源字符串,最后将修改后的内容写回文件,实现文件内容的更新。整个过程使用了字符流和缓冲流进行高效操作。
摘要由CSDN通过智能技术生成

1 packageorg.utils.tools.fileoper;2

3 import java.io.*;4 importjava.util.ArrayList;5 importjava.util.List;6

7 /*

8 * 修改文件中的内容9 * 替换properties文件中的ip10 **/

11 public classEditFile {12 public static voidmain(String args[]) {13 //String inputPath = "C:\workspace\hbase_test\src\main\resource\properties\case_01.properties";14 //String outputPath = "C:\workspace\hbase_test\src\main\resource\properties\case_out.properties";

15

16 String srcStr = "bd.test.com"; //需要替换的字符串

17 String desStr = "10.15.100.25"; //用于替换的字符串18 //文件目录,不扫子目录

19 String dirPath = "C:\workspace\work\bdd-bd-test\" +

20 "src\test\resources\properties\case\tunny\001";21

22 File f = newFile(dirPath);23 String wholeFilePath;24 String[] fileNames =f.list();25 for(String s : fileNames) {26 wholeFilePath = dirPath + "\" +s;27 System.out.println("处理文件:" +wholeFilePath);28 propertiesChange(wholeFilePath, srcStr, desStr);29 }30 }31

32 /*

33 * 修改文件中的指定内容34 **/

35 public static voidpropertiesChange(String filePath, String srcStr, String desStr) {36 //字符流

37 FileReader fr = null;38 FileWriter fw = null;39 //缓冲流

40 BufferedReader br = null;41 BufferedWriter bw = null;42

43 List list = new ArrayList<>();44 //读取文件内容保证在list中

45 try{46 fr = new FileReader(newFile(filePath));47 br = new BufferedReader(fr); //扩容,类似加水管

48 String line = br.readLine(); //逐行复制

49 while (line != null) {50 //修改指定内容

51 if(line.contains(srcStr)) {52 line =line.replace(srcStr, desStr);53 }54 list.add(line);55 line =br.readLine();56 }57 } catch(IOException e) {58 e.printStackTrace();59 } finally{60 try{61 //关闭流,顺序与打开相反

62 br.close();63 fr.close();64 } catch(IOException e) {65 e.printStackTrace();66 }67 }68

69 //将list中内容输出到原文件中

70 try{71 fw = newFileWriter(filePath);72 bw = newBufferedWriter(fw);73 for(Object s : list) {74 bw.write((String) s);75 bw.newLine(); //换行输出

76 }77 System.out.println("文件修改成功!");78 } catch(IOException e) {79 e.printStackTrace();80 } finally{81 try{82 //关闭流,顺序与打开相反

83 bw.close();84 fw.close();85 } catch(IOException e) {86 e.printStackTrace();87 }88 }89 }90

91 /*

92 * 读取文件并修改指定内容,复制到另一个文件中93 **/

94 public static voidpropertiesChange(String inputPath, String outputPath, String srcStr, String desStr) {95 //字符流

96 FileReader fr = null;97 FileWriter fw = null;98 //缓冲流

99 BufferedReader br = null;100 BufferedWriter bw = null;101

102 try{103 fr = new FileReader(newFile(inputPath));104 br = new BufferedReader(fr); //扩容,类似加水管

105 fw = newFileWriter(outputPath);106 bw = newBufferedWriter(fw);107

108 String line = br.readLine(); //逐行复制

109 while (line != null) {110 if(line.contains(srcStr)) {111 line =line.replace(srcStr, desStr);112 }113 bw.write(line);114 bw.newLine(); //换行输出

115 line =br.readLine();116 }117 System.out.println("文件修改成功!");118 } catch(IOException e) {119 e.printStackTrace();120 } finally{121 try{122 //关闭流,顺序与打开相反

123 bw.close();124 br.close();125 fw.close();126 fr.close();127 } catch(IOException e) {128 e.printStackTrace();129 }130 }131 }132

133

134 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值