Java如何将文件下的所有文件进行批量更改和替换

2023-11-02

Java如何将文件下的所有文件进行批量更改和替换

  1. 将F盘下tmp文件夹下的文件循环取出
  2. 进行文件的替换(这里将李替换成1
  3. 修改完成写入到文件夹中
public class Test {

    public static void main(String[] args) throws IOException {
        List fileStr =  Files.walk(Paths.get("F:\\tmp"))
                .filter(Files::isRegularFile)
                .collect(Collectors.toList());
        String target = "李";
        String replacement = "1";
        fileStr.forEach(x->modify( x.toString(), target, replacement));
    }
    public static void modify(String path, String target, String replacement) {
        File file = new File(path);
        if (file.exists()) {
            modifyFileContent(file, target, replacement);
        } else {
            System.out.println("文件不存在"+ path);
        }
    }
    /**
     * 修改文件中的内容
     * @param file 文件
     * @param target 被替换的字符串
     * @param replacement 替换字符串
     */
    public static void modifyFileContent(File file, String target, String replacement) {
        System.out.println("开始修改文件:+file.getName(), 替换 "+target+"为"+replacement);
        StringBuilder sb = new StringBuilder();
        //修改的行数
        int cnt = 0;
        //替换所在的行
        int rowLine = 0;
        //换行符
        String enter = System.getProperty("line.separator");
        PrintWriter pw = null;
        try (BufferedReader br = new BufferedReader(new FileReader(file))) {
            String line;
            for (line = br.readLine(); line != null; line = br.readLine()) {
                rowLine++;
                if (line.contains(target)) {
                    line = line.replace(target, replacement);
                    System.out.println("替换所在行:"+rowLine);
                    cnt++;
                }
                //数据暂存在 StringBuilder 中
                if (rowLine == 1) {
                    sb.append(line);
                } else {
                    sb.append(enter).append(line);
                }
            }
            pw = new PrintWriter(new FileWriter(file));
            pw.print(sb);
        } catch (FileNotFoundException e) {
            System.out.println("文件不存在!"+ e);
            System.exit(1);
        } catch (IOException ex) {
            ex.printStackTrace();
        } finally {
            if (pw != null) {
                pw.close();
            }
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java如何将文件下的所有文件进行批量更改和替换 的相关文章

随机推荐

  • c语言实现一个单元测试框架(Unit Test Framework)

    csdn lidp 转载注明出处 此单元测试框架为我在google code上的开源项目spider tool的一部分 关于spider tool 欢迎访问google code https spider tool googlecode c
  • 数据结构(一):顺序表

    使用typedef为现有类型创建别名 定义易于记忆的类型名 typedef 还可以掩饰复合类型 如指针和数组 void malloc unsigned int size 其作用是在内存的动态存储区中分配一个长度为 size 的连续空间 此函
  • /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o: in function `_start‘

    对于这个错误 不用想太多 一定是你再使用Vscode时没有事先保存这个 cpp c源文件就用 g xxx cpp o xxx gcc xxx c o xxx 来生成可执行文件导致的 hell cpp include
  • 最小二乘法和偏导

    偏导 在数学中 一个多变量的函数的偏导数 就是它关于其中一个变量的导数而保持其他变量恒定 相对于全导数 在其中所有变量都允许变化 求对 x 的偏导数 视 y 为常量 对 x 求导 求对 y 的偏导数 视 x 为常量 对 y 求导 最小二乘法
  • vSphere Client无法连接到服务器 出现未知错误的解决方法

    VMware ESXi服务器虚拟机在正常使用过程中 有时候会突然出现远程连接不上的问题 那么这个时候使用vSphere Client连接会出现如下错误 虽然连接不上 但是可以ping通 所以分析有可能是虚拟机用于客户端连接的服务停止了 可以
  • Linux内核调试方法总结之strace ,ltrace, ptrace, ftrace, sysrq

    come from https www cnblogs com justin y lin tag E5 86 85 E6 A0 B8 strace 用途 strace是一个功能强大的调试 分析 诊断工具 跟踪程序或进程执行时的系统调用和所接
  • OpenGL入门教程

    OpenGL入门教程 参考 OpenGL入门教程 Opengl 图形学final project作业记录 文章目录 OpenGL入门教程 一 概述 1 OpenGL 2 OpenGL ES与WebGL 3 OpenGL发展史 4 OpenG
  • iOS实现七牛多图片、文件上传和下载

    最近做项目用到了七牛的图片云存储服务 坑爹的是七牛只支持单图片的上传 但是谁会只传一张图片 要想实现多图片的上传必须自己实现多图片上传 网上相关资源又比较少 而且很多人都遇到了类似的问题 这里我总结了网上的一些零散的方法 自己写了个多文件上
  • 笔记本外置显卡说明

    一 简介 1 说明 笔记本外置显卡是一种硬件的配置方式 忽略笔记本自带的显卡 使用外置显卡 一方面可以自由选择显卡的类型 另一方面 可以实现高分辨率的正常显示 2 用途 在高清屏幕上展示画面 兼容高分辨率的游戏 下面详细说明一下这一配置的实
  • 【AI面试】目标检测中one-stage、two-stage算法的内容和优缺点对比汇总

    在深度学习领域中 图像分类 目标检测和目标分割是三个相对来说较为基础的任务了 再加上图像生成 GAN VAE 扩散模型 keypoints关键点检测等等 基本上涵盖了图像领域大部分场景了 尤其是在目标检测 一直是各大比赛 Pascal VO
  • 小目标检测论文阅读

    下面记录了一些论文的阅读总结 算法发展历程 传统图像算法 传统图像算法使用hand made feature 常用方法有SIFT HOG 图像金字塔等 对于小目标的检测 传统图像算法有人工复杂度高 模型泛化性差等缺点 因此逐渐被深度学习模型
  • t5_Sophisticated Algorithmic Strategies(MeanReversion+APO+StdDev_TrendFollowing+APO)_StatArb统计套利_PnL

    we will explore more sophisticated s f st ke t d 复杂的 trading strategies employed by leading market participants in the a
  • 巨潮网怎么下载年报_企业年报可别忘记,操作流程在这里。

    本专栏目录在文尾 企业年报 取代了之前的营业执照年检操作 所以是每个企业上半年中必须完成的一项重要工作 而此项工作有的企业会划归到财务部负责 这里就介绍一下企业年报的操作流程 在进行年报之前 有几个重要事项需要先了解一下 企业年报的申报期为
  • Esp32中Wi-Fi 开发介绍及使用:AP模式与STA模式常用函数详解

    目录 一 介绍 二 AP模式下常用函数 1 将 Wi Fi 作为接入点启动 2 使用函数 softAP 配置 Wi Fi AP 特性 3 使用函数softAPConfig配置静态IP 网关 子网掩码 4 使用函数softAPdisconne
  • Proxy代理模式

    list list Proxy代理模式是一种结构型设计模式 主要解决的问题是 在直接访问对象时带来的问题 比如说 要访问的对象在远程的机器上 在面向对象系统中 有些对象由于某些原因 比如对象创建开销很大 或者某些操作需要安全控制 或者需要进
  • python ssl连接 证书验证失败_Python SSL证书验证错误

    I m using requests to access a RESTful API Everything seems to work I can authenticate pull back a session token and eve
  • C语言,结构体中字符串的声明(采用字符指针还是字符数组)

    结构体中 字符串选项是用字符数组表示好 还是用字符指针表示好 typedef struct person char name int age char sex 6 该结构体中name用的是指针而不是数组 所以需要给字符串在堆上申请内存然后再
  • 服务失效判断

    题目描述 某系统中有众多服务 每个服务用字符串 只包含字母和数字 长度 lt 10 唯一标识 服务间可能有依赖关系 如A依赖B 则当B故障时导致A也故障 依赖具有传递性 如A依赖B B依赖C 当C故障时导致B故障 也导致A故障 给出所有依赖
  • liuseroj 网址

    点我进入liuseroj 如果打不开请点击备用线路
  • Java如何将文件下的所有文件进行批量更改和替换

    Java如何将文件下的所有文件进行批量更改和替换 将F盘下tmp文件夹下的文件循环取出 进行文件的替换 这里将李替换成1 修改完成写入到文件夹中 public class Test public static void main Strin