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

时间:2021-09-12 00:30:58

扫描目录下文件,修改文件中指定内容

 package org.utils.tools.fileoper;

 import java.io.*;
import java.util.ArrayList;
import java.util.List; /*
* 修改文件中的内容
* 替换properties文件中的ip
* */
public class EditFile {
public static void main(String args[]) {
// String inputPath = "C:\\workspace\\hbase_test\\src\\main\\resource\\properties\\case_01.properties";
// String outputPath = "C:\\workspace\\hbase_test\\src\\main\\resource\\properties\\case_out.properties"; String srcStr = "bd.test.com"; //需要替换的字符串
String desStr = "10.15.100.25"; //用于替换的字符串
// 文件目录,不扫子目录
String dirPath = "C:\\workspace\\work\\bdd-bd-test\\" +
"src\\test\\resources\\properties\\case\\tunny\\001"; File f = new File(dirPath);
String wholeFilePath;
String[] fileNames = f.list();
for (String s : fileNames) {
wholeFilePath = dirPath + "\\" + s;
System.out.println("处理文件:" + wholeFilePath);
propertiesChange(wholeFilePath, srcStr, desStr);
}
} /*
* 修改文件中的指定内容
* */
public static void propertiesChange(String filePath, String srcStr, String desStr) {
//字符流
FileReader fr = null;
FileWriter fw = null;
//缓冲流
BufferedReader br = null;
BufferedWriter bw = null; List list = new ArrayList<>();
//读取文件内容保证在list中
try {
fr = new FileReader(new File(filePath));
br = new BufferedReader(fr); //扩容,类似加水管
String line = br.readLine(); //逐行复制
while (line != null) {
//修改指定内容
if (line.contains(srcStr)) {
line = line.replace(srcStr, desStr);
}
list.add(line);
line = br.readLine();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
//关闭流,顺序与打开相反
br.close();
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
} //将list中内容输出到原文件中
try {
fw = new FileWriter(filePath);
bw = new BufferedWriter(fw);
for (Object s : list) {
bw.write((String) s);
bw.newLine(); //换行输出
}
System.out.println("文件修改成功!");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
//关闭流,顺序与打开相反
bw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} /*
* 读取文件并修改指定内容,复制到另一个文件中
* */
public static void propertiesChange(String inputPath, String outputPath, String srcStr, String desStr) {
//字符流
FileReader fr = null;
FileWriter fw = null;
//缓冲流
BufferedReader br = null;
BufferedWriter bw = null; try {
fr = new FileReader(new File(inputPath));
br = new BufferedReader(fr); //扩容,类似加水管
fw = new FileWriter(outputPath);
bw = new BufferedWriter(fw); String line = br.readLine(); //逐行复制
while (line != null) {
if (line.contains(srcStr)) {
line = line.replace(srcStr, desStr);
}
bw.write(line);
bw.newLine(); //换行输出
line = br.readLine();
}
System.out.println("文件修改成功!");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
//关闭流,顺序与打开相反
bw.close();
br.close();
fw.close();
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }

Java之扫描目录,修改文件内容的更多相关文章

  1. Java之修改文件内容:字符串逐行替换

    依赖包: <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</a ...

  2. java修改文件内容

    文件的读和写,大家都不陌生,但是修改呢?按照普通的读写流去修改的话,只能全部读取出来,在内存中修改好后,全部写进去,这样对于文件内容过多的时,性能很低. 最近在遇到这个问题的时候,发现RandomAc ...

  3. Web 在线文件管理器学习笔记与总结(5)修改文件内容

    ① 读出要修改的文件的内容 ② 进行修改 ③ 将修改后的内容写进文件 index.php: <?php require 'dir.func.php'; require 'file.func.ph ...

  4. python笔记(三)---文件读写、修改文件内容、处理json、函数

    文件读写(一) #r 只读,打开文件不存在的话,会报错 #w 只写,会清空原来文件的内容 #a 追加写,不会请求,打开的文件不存在的话,也会帮你新建的一个文件 print(f.read()) #获取到 ...

  5. linux下C&plus;&plus;修改文件内容

    C fwrite在任意位置写入文件,并可修改文件内容 想实现类似迅雷那样下载时可以从文件半中间写入的功能 #include<stdio.h> int main() { FILE *fp; ...

  6. python 修改文件内容

    python 修改文件内容 一.修改原文件方式 1 def alter(file,old_str,new_str): 2 """ 3 替换文件中的字符串 4 :param ...

  7. python 文件操作(二) 替换性修改文件内容

    正常情况我们想要仅对文件某一行的内容进行修改,而不改变其他内容,在原文件的基础上不能修改,因为当我们对原文件进行写操作时,如果原文件里面有内容,就会清空,在这种情况下,只能对文件进行替换性修改:即重新 ...

  8. Python修改文件内容

    工作中要写个脚本来修改文件的内容,然后就写了一个刷子: #coding:utf8 import os def modify_file(old_file, new_version, old_versio ...

  9. shell编程系列12--文本处理三剑客之sed利用sed修改文件内容

    shell编程系列12--文本处理三剑客之sed利用sed修改文件内容 修改命令对照表 编辑命令 1s/old/new/ 替换第1行内容old为new ,10s/old/new/ 替换第1行到10行的 ...

随机推荐

  1. 关于Tomcat在eclipse上的配置

    一:安装JDK(建议版本比较新的jdk,因为有很多集成于jdk软件需要的jdk版本比较高): jdk官网下载位置:http://www.oracle.com/technetwork/java/java ...

  2. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作&lpar;二&rpar;

    CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ...

  3. Ubuntu Nginx下配置网站ssl实现https访问

    最近在看  HTTP权威指南   看到介绍了HTTPS的ssl,自己就动手测试了下,将步骤记录下 HTTPS简介 什么是HTTPS?百科是这样解释的.HTTPS(全称:Hyper Text Trans ...

  4. DFS PKU 1562

    简单地DFS Oil Deposits Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12801   Accepted: 6 ...

  5. hibernate 管理 Session&lpar;单独使用session,不spring&rpar;

    Hibernate 本身提供了三个管理 Session 对象的方法 Session 对象的生命周期与本地线程绑定 Session 对象的生命周期与 JTA 事务绑定 Hibernate 托付程序管理 ...

  6. CentOS7&period;4下部署hadoop3&period;1&period;1

    CentOS7.4下部署hadoop3.1.1 契机 由于工作原因要部署hadoop的集群,习惯使用最新的稳定版本2018年的时候由于时间紧破部署了2.7.2版本,最新由于又要部署有研究了一下3.x的 ...

  7. Python是一门什么样的语言

    先做个总结:Python是一门动态解释型的强类型定义语言. 那何为动态?何为解释?何为强类型呢? 我们需要了解编译型和解释型.静态语言和动态语言.强类型定义语言和弱类型定义语言这6个概念就可知晓. 编 ...

  8. Catfish CMS漏洞集合

    转自https://larryxi.github.io/ 0x00 背景 版本:V 4.2.35 官网下载:http://www.catfish-cms.com/page/4.html 文章内容仅作学 ...

  9. JS 判断IE(转)

    一.: 之前,js判断的方式都是利用浏览器的useragent字段.通过判断useragent字段里面是否包含有MSIE字段来判断是否是IE系列浏览器,屡试不爽. 但是在IE11之后,微软把自家的IE ...

  10. Mybatis的自动映射autoMappingBehavior与mapUnderscoreToCamelCase

    autoMappingBehavior 在Mybatis的配置文件中添加settings属性的autoMappingBehavior <settings> <setting name ...