精华内容
下载资源
问答
  • java替换文本文件内容
    2022-04-07 13:06:12
    import java.io.*;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Set;
    
    public class FileUtil {
        //存储要修改的内容
        private final Map<String, String> map;
    
        public FileUtil(Map<String, String> map) {
            this.map = map;
        }
    
        public static void main(String[] args) {
    
            //读取指定文件夹下的所有文件
            //给我你的目录文件夹路径
            String filepath = "F:\\A";
            File file = new File(filepath);
            Map<String, String> map = new HashMap<>();
            map.put("要修改的内容1", "替换后的内容1"); //把需要替换的文本直接复制到 "" 内就行,编译器会自动添加转义符之类的,否则手动替换拼接会累死
           // map.put("要修改的内容2;", "替换后的内容2");
            new FileUtil(map).refreshFileList(file);
            
        }
    
        public void refreshFileList(String filepath) {
            refreshFileList(new File(filepath));
        }
    
        public void refreshFileList(File filepath) {
            if (!filepath.exists()) {
                System.out.println("此路径不存在");
                return;
            }
            File[] fileList = filepath.listFiles();
            if (fileList == null || fileList.length < 1) {
                System.out.println("空文件夹");
                return;
            }
            for (File file : fileList) {
                if (file.isDirectory()) {
                    //如果是文件夹递归扫描
                    refreshFileList(file);
                } else {
                    String filename = file.getName();//读到的文件名
                    String strFileName = file.getAbsolutePath();//文件路径
                    //截取文件格式
                    String SufName = filename.substring(filename.lastIndexOf(".") + 1);
                    //排除不需要扫描的文件
    //                if (SufName.equals("rar") || SufName.equals("jpg") || SufName.equals("png") || SufName.equals("jar") || SufName.equals("doc") || SufName.equals("xls") || SufName.equals("gif") || SufName.equals("wmz")) {
    //                    continue;
    //                }
                    //或者指定扫描文件
                    if (SufName.equalsIgnoreCase("html") || SufName.equalsIgnoreCase("java")) {
                        changeFile(file);
                    }
                }
            }
        }
    
        /**
         * 修改文件
         *
         * @param file
         */
        private void changeFile(File file) {
            String s = null;
            try (FileInputStream fis = new FileInputStream(file);
                 BufferedReader reader = new BufferedReader(new InputStreamReader(fis));) {
    
                //之所以用BufferedReader,而不是直接用BufferedInputStream读取,是因为BufferedInputStream是InputStream的间接子类,
                //InputStream的read方法读取的是一个byte,而一个中文占两个byte,所以可能会出现读到半个汉字的情况,就是乱码.
                //BufferedReader继承自Reader,该类的read方法读取的是char,所以无论如何不会出现读个半个汉字的.
                StringBuilder result = new StringBuilder();
                while (reader.ready()) {
                    result.append((char) reader.read());
                }
                s = result.toString();
                Set<Map.Entry<String, String>> entries = map.entrySet();
                for (Map.Entry<String, String> mapKey : entries) {
                    if (s.contains(mapKey.getKey())) { //判断当前行是否存在想要替换掉的字符 
                        s = s.replace(mapKey.getKey(), mapKey.getValue());//替换为你想替换的内容
                    }
                }
    
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            writerFile(s, file);
    
        }
    
        /**
         * 写入文件
         *
         * @param s
         * @param file
         */
        public void writerFile(String s, File file) {
            try (FileOutputStream fos = new FileOutputStream(file);
                 BufferedOutputStream bos = new BufferedOutputStream(fos)) {
                bos.write(s.getBytes());
                System.out.println("文件修改成功!");
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("文件修改失败!");
            }
        }
    
    }
    
    

    更多相关内容
  • 替换几乎是所有文本编辑器都支持的功能,但是要限制在编辑其中才可以执行该功能。本实例实现了制定文本文件内容替换,并且不需要再编辑其中打开文本文件
  • 【实例简介】【实例截图】【核心代码】...import java.awt.EventQueue;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.io...

    【实例简介】

    【实例截图】

    15547ddbc76e847d47026f4e9f53fe0f.png

    【核心代码】

    package com.mingrisoft;

    import java.awt.EventQueue;

    import java.awt.GridLayout;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import java.io.File;

    import java.io.FileNotFoundException;

    import java.io.FileReader;

    import java.io.FileWriter;

    import java.io.IOException;

    import javax.swing.JButton;

    import javax.swing.JFileChooser;

    import javax.swing.JFrame;

    import javax.swing.JLabel;

    import javax.swing.JOptionPane;

    import javax.swing.JPanel;

    import javax.swing.JTextField;

    import javax.swing.border.EmptyBorder;

    import javax.swing.filechooser.FileNameExtensionFilter;

    public class ReplaceTool extends JFrame {

    /**

    *

    */

    private static final long serialVersionUID = -6579898848014795564L;

    private JPanel contentPane;

    private JTextField beforeTextField;

    private JTextField afterTextField;

    private File textFile;

    /**

    * Launch the application.

    */

    public static void main(String[] args) {

    EventQueue.invokeLater(new Runnable() {

    public void run() {

    try {

    ReplaceTool frame = new ReplaceTool();

    frame.setVisible(true);

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    });

    }

    /**

    * Create the frame.

    */

    public ReplaceTool() {

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    setBounds(100, 100, 400, 150);

    contentPane = new JPanel();

    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

    setContentPane(contentPane);

    contentPane.setLayout(new GridLayout(2, 1, 5, 5));

    JPanel contentPanel = new JPanel();

    contentPane.add(contentPanel);

    JLabel beforeLabel = new JLabel("替换前字符串:");

    contentPanel.add(beforeLabel);

    beforeTextField = new JTextField();

    contentPanel.add(beforeTextField);

    beforeTextField.setColumns(10);

    JButton chooseButton = new JButton("选择文件");

    chooseButton.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    do_chooseButton_actionPerformed(e);

    }

    });

    contentPanel.add(chooseButton);

    JPanel buttonPanel = new JPanel();

    contentPane.add(buttonPanel);

    JButton replaceButton = new JButton("开始替换");

    replaceButton.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    do_replaceButton_actionPerformed(e);

    }

    });

    JLabel afterlabel = new JLabel("替换后字符串:");

    buttonPanel.add(afterlabel);

    afterTextField = new JTextField();

    buttonPanel.add(afterTextField);

    afterTextField.setColumns(10);

    buttonPanel.add(replaceButton);

    }

    protected void do_chooseButton_actionPerformed(ActionEvent e) {

    JFileChooser chooser = new JFileChooser();

    chooser.setFileFilter(new FileNameExtensionFilter("文本文件", "txt"));

    chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

    chooser.setMultiSelectionEnabled(false);

    int result = chooser.showOpenDialog(this);

    if (result == JFileChooser.APPROVE_OPTION) {

    textFile = chooser.getSelectedFile();

    }

    }

    protected void do_replaceButton_actionPerformed(ActionEvent e) {

    String before = beforeTextField.getText();// 获得替换前字符串

    if (before.isEmpty()) {// 验证字符串是否为空

    JOptionPane.showMessageDialog(this, "请输入替换前字符串", "警告信息", JOptionPane.WARNING_MESSAGE);

    return;

    }

    String after = afterTextField.getText();// 获得替换后字符串

    if (after.isEmpty()) {// 验证字符串是否为空

    JOptionPane.showMessageDialog(this, "请输入替换后字符串", "警告信息", JOptionPane.WARNING_MESSAGE);

    return;

    }

    FileReader reader = null;// 创建文件读流

    FileWriter writer = null;// 创建文件写流

    StringBuilder sb = new StringBuilder();// 使用StringBuilder对象保存文件内容

    int flag = 0;// 声明文件读入标示

    char[] temp = new char[1024];// 使用字符数组读入文件

    try {

    reader = new FileReader(textFile);// 使用选择的文件创建读流

    while ((flag = reader.read(temp)) != -1) {

    sb.append(temp);// 读入文件中的内容

    }

    String content = sb.toString().replace(before, after);// 替换字符串

    writer = new FileWriter(textFile);// 创建文件写流

    writer.write(content); // 将替换后的字符串写入到文件

    } catch (FileNotFoundException e1) {

    e1.printStackTrace();

    } catch (IOException e1) {

    e1.printStackTrace();

    } finally {

    if (reader != null) {

    try {

    reader.close();// 关闭文件读流

    } catch (IOException e1) {

    e1.printStackTrace();

    }

    }

    if (writer != null) {

    try {

    writer.close();// 关闭文件写流

    } catch (IOException e1) {

    e1.printStackTrace();

    }

    }

    }

    JOptionPane.showMessageDialog(this, "字符串替换成功!");

    return;

    }

    }

    展开全文
  • Java实现批量替换文本文档中内容

    千次阅读 2022-02-06 23:17:03
    Java实现批量替换文本文档中内容 有更好的方案大佬们也可以在评论区指出 import java.io.*; import java.util.HashMap; import java.util.Map; import java.util.Set; public class FileUtil { //存储要修改的内容...

    Java实现批量替换文本文档中内容
    有更好的方案大佬们也可以在评论区指出

    import java.io.*;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Set;
    
    public class FileUtil {
        //存储要修改的内容
        private final Map<String, String> map;
    
        public FileUtil(Map<String, String> map) {
            this.map = map;
        }
    
        public static void main(String[] args) {
    
            //读取指定文件夹下的所有文件
            //给我你的目录文件夹路径
            String filepath = "F:\\A";
            File file = new File(filepath);
            Map<String, String> map = new HashMap<>();
            map.put("要修改的内容1", "修改的内容1");
            map.put("要修改的内容2;", "修改的内容2");
            new FileUtil(map).refreshFileList(file);
            
        }
    
        public void refreshFileList(String filepath) {
            refreshFileList(new File(filepath));
        }
    
        public void refreshFileList(File filepath) {
            if (!filepath.exists()) {
                System.out.println("此路径不存在");
                return;
            }
            File[] fileList = filepath.listFiles();
            if (fileList == null || fileList.length < 1) {
                System.out.println("空文件夹");
                return;
            }
            for (File file : fileList) {
                if (file.isDirectory()) {
                    //如果是文件夹递归扫描
                    refreshFileList(file);
                } else {
                    String filename = file.getName();//读到的文件名
                    String strFileName = file.getAbsolutePath();//文件路径
                    //截取文件格式
                    String SufName = filename.substring(filename.lastIndexOf(".") + 1);
                    //排除不需要扫描的文件
    //                if (SufName.equals("rar") || SufName.equals("jpg") || SufName.equals("png") || SufName.equals("jar") || SufName.equals("doc") || SufName.equals("xls") || SufName.equals("gif") || SufName.equals("wmz")) {
    //                    continue;
    //                }
                    //或者指定扫描文件
                    if (SufName.equalsIgnoreCase("html") || SufName.equalsIgnoreCase("java")) {
                        changeFile(file);
                    }
                }
            }
        }
    
        /**
         * 修改文件
         *
         * @param file
         */
        private void changeFile(File file) {
            String s = null;
            try (FileInputStream fis = new FileInputStream(file);
                 BufferedReader reader = new BufferedReader(new InputStreamReader(fis));) {
    
                //之所以用BufferedReader,而不是直接用BufferedInputStream读取,是因为BufferedInputStream是InputStream的间接子类,
                //InputStream的read方法读取的是一个byte,而一个中文占两个byte,所以可能会出现读到半个汉字的情况,就是乱码.
                //BufferedReader继承自Reader,该类的read方法读取的是char,所以无论如何不会出现读个半个汉字的.
                StringBuilder result = new StringBuilder();
                while (reader.ready()) {
                    result.append((char) reader.read());
                }
                s = result.toString();
                Set<Map.Entry<String, String>> entries = map.entrySet();
                for (Map.Entry<String, String> mapKey : entries) {
                    if (s.contains(mapKey.getKey())) { //判断当前行是否存在想要替换掉的字符 
                        s = s.replace(mapKey.getKey(), mapKey.getValue());//替换为你想替换的内容
                    }
                }
    
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            writerFile(s, file);
    
        }
    
        /**
         * 写入文件
         *
         * @param s
         * @param file
         */
        public void writerFile(String s, File file) {
            try (FileOutputStream fos = new FileOutputStream(file);
                 BufferedOutputStream bos = new BufferedOutputStream(fos)) {
                bos.write(s.getBytes());
                System.out.println("文件修改成功!");
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("文件修改失败!");
            }
        }
    
    }
    
    
    展开全文
  • Java实现替换文本内容(二)

    千次阅读 2018-08-29 18:37:24
    上一篇写的是将内容写入新文件,读完后删除源文件,在修改新...读取完源文件后,将随机文件流定位回记录的位置,最后将临时文件内容写入,删除临时文件。即达到替换文本内容的效果。 oldString 目标字符串 new...

    上一篇写的是将内容写入新文件,读完后删除源文件,在修改新文件名。

    本次用的方法是创建随机文件流,用来读取源文件内容,找到第一次包含目标字符串内容的位置,然后将目标字符串替换写入临时文件,后面不包含目标字符串的内容也写入,含目标字符串则替换写入。读取完源文件后,将随机文件流定位回记录的位置,最后将临时文件内容写入,删除临时文件。即达到替换文本内容的效果。

    oldString 目标字符串
    newString替换字符串
    newFile临时文件

    以下为代码实现过程:

    public class AlterStringInFile {
        private static String path ="src/源文件"; //目标文件路径
        private static File file = new File(path); //创建目标文件
        public static void alterStringInNewFileReturnFile(String oldString, 
                String newString){
            try {
                long start = System.currentTimeMillis();
                //创建临时文件
                File newFile = new File("src/临时文件");
                if(!newFile.exists()){
                    newFile.createNewFile();
                }
                //创建随机文件流
                RandomAccessFile raf = new RandomAccessFile(file, "rw");
                //创建对临时文件缓存输出流
                BufferedWriter bw_NewFile = new BufferedWriter(
                        new OutputStreamWriter(
                                new FileOutputStream(newFile,true)));
                String string ; //存储读取内容
                long lastPoint = raf.getFilePointer(); //记录每次读取位置
                long point = 0; //记录第一次包含目标字符串位置
                int sum = 0; //记录包含目标字符串次数
                boolean flag = false; //判断是否是目标字符之后内容
                while ((string = raf.readLine()) != null){
                //随机文件流读取的时候会将GBK格式转为ISO-8859-1,
                //将读取的内容转回本地格式
                    string = new String(string.getBytes("ISO-8859-1"));
                    //判断是否包含目标字符
                    if(string.contains(oldString)){
                        if(sum == 0)
                            point = lastPoint;
                        string = new String(
                                string.replace(oldString, newString));
                        bw_NewFile.write(string);
                        bw_NewFile.newLine();
                        sum++;
                        flag = true;
                    } else if (flag){ 
                        bw_NewFile.write(string);
                        bw_NewFile.newLine();
                    } else {
                        lastPoint = raf.getFilePointer();
                    }
                }
                bw_NewFile.close();
                BufferedReader br_NewFile = new BufferedReader(
                        new InputStreamReader(
                                new FileInputStream(newFile)));
                raf.seek(point);
                while((string = br_NewFile.readLine()) != null){
                    string = string +"\r\n";
                    raf.write(string.getBytes());
                }
                br_NewFile.close();
                raf.close();
                newFile.delete();
                long time = System.currentTimeMillis() - start;
                System.out.println(sum+"个"+oldString
                        +"替换成"+newString+"耗费时间:"+time);
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
         public static void main(String[] args){
            String oldString = "oldString";
            String newString = "newString";
            alterStringInNewFileReturnFile(oldString,newString);
             }
    }

    源文件内容为本次代码内容,以下为运行结果:
    运行结果

    展开全文
  • 我有一个名为log.txt的文本文件,它具有以下数据1,,Mon May 05 00:05:45 WST 2014,textFiles/a.txt,images/download.jpg2,,Mon May 05 00:05:45 WST 2014,textFiles/a.txt,images/download.jpg第一个逗号之前的数字...
  • 对指定目录下的一篇文本文档实现关键字的替换,或者对图片等其他文件进行替换
  • Java实现文本内容替换(三)

    千次阅读 2018-08-30 20:12:24
    本次实现方法为,将文本内容全读到缓存中去,读取的过程中如果包含目标字符串则替换后写入缓存,读取完后将缓存内容写入文本。 以下为代码实现过程: public class AlterStringInFile { private static String ...
  • 主要介绍了Java 在 Word 文档中使用新文本替换指定文本的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • Java 替换文件中的内容信息

    千次阅读 2020-07-27 09:36:36
    首先读取文件内容,找到要替换的文本,然后替换文本信息,将旧文件删除,创建新文件,将所有内容复制一份重写到新文件中 具体代码: import java.io.File; import java.io.IOException; import java.nio.file....
  • 使用Java替换文件中的文本

    千次阅读 2021-02-28 10:22:22
    我有一个名为FormatString.java文本文件。它包含一些单词。在所有这些单词中,我想将单词oldstring替换为newstring,并将最终结果重命名为t.txt。我已经编写了代码。从技术上讲,它应该起作用。问题是我不知道在...
  • java替换文件中某一行文本内容

    千次阅读 2021-02-12 17:24:40
    个人博客 地址:http://www.wenhaofan.com/article/20180913160442代码如下package ...import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputSt...
  • Java 实现替换文件的指定内容

    千次阅读 2019-08-05 09:51:43
    //import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.... * @title 文件替换 * @date 2019年6月21日 上午9:4...
  • ​ 本人经常写CSDN文章,上面的图片链接来自gitee图床,突然有一天图床用不了了,我需要切换到腾讯云COS上,那此时我目录下这么多的文本文件需要更换图片链接,我要是挨个文件去替换,我这几十个文件换下来我得崩溃...
  • 使用命令替换文本多行内容A very useful function which is missing from the Windows library of command line tools is the ability to replace text in plain text files. A function like this can be used for ...
  • JAVA读取文件替换文件中的内容

    千次阅读 2021-08-11 17:10:14
    import java.io.*; import java.text.ParseException; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class qwe { public ...
  • 使用java代码实现搜索遍历文本文件替换文本内容, 支持脚本bat和sh调用.
  • 读取excel或者其他类型文件的数据作为待替换的数据 //读取excel数据 File file2 = new File(filePath + &quot;Excel标准参数.xls&quot;); Workbook workbook = null; try { workbook = new ...
  • java 处理html标签内容,找到html标签中所有相当的内容,并替找成新的内容.1.[代码]替换html标签内容public static void main(String[] args) {String bullein="6、报名及招标文件发售时间:${projectRule.signUpSTime...
  • eclipse默认编码为gbk开发一段时间需要修改成utf-8,写个脚本批量处理文件编码格式,也可以批量替换文本内容
  • 本文介绍通过Java程序批量替换PDF中的指定文本内容。 1. 程序环境准备如下: 程序使用环境如图,需要注意的是,本文使用了免费版的PDF jar工具;另外JDK版本建议使用高版本更佳。 jar文件导入后,可调用Spire....
  • Java File文件流读取文件夹内的文件并替换文件内容一、前言二、代码三、运行结果 一、前言 批量读取文件夹内的文件,并替换各个文件的内容 二、代码 新建一个普通 Java 项目就可以,创建文件 ReadFile.java import ...
  • 适合各文本脚本网页 JAVA等逆向修改搜索关键词 强大的文件内容搜索替换工具 在你修改程序的时候 非常需要这类工具哦 适合每个程序员使用
  • Java 文本内容差异对比实现介绍

    千次阅读 2021-12-02 17:09:03
    目录一、文本差异对比介绍二、依赖下载三、获取两文件的不同点-patch四、根据patch生成统一的差异格式unifiedDiff五、根据unifiedDiff打补丁六、对比两文件的不同点并按行显示不同 一、文本差异对比介绍 举一个最...
  • java2Word操作Word,比如插入图片和替换文本,压缩文件中有【lib和exe】文件夹和[java2Word]项目代码,网上都不完整,本人对其进行完全整合,新手解压后按readme.txt文件操作说明可以使用
  • Java实现文本内容替换(四)

    千次阅读 2018-09-06 18:53:47
    文件找到原字符串开始位置,然后seek定位,开始讲替换后字符串写入即可实现替换文本特定内容. public class AlterStringInFile { private static String path ="src/源文件"; //目标文件路径 private...
  • java 查找替换pdf中的指定文本

    千次阅读 2021-03-08 20:29:41
    本文介绍通过Java程序批量替换PDF中的指定文本内容。程序环境准备如下:程序使用环境如图,需要注意的是,本文使用了免费版的PDF jar工具;另外JDK版本建议使用高版本更佳。jar文件导入后,可调用Spire.PDF提供的...
  • java读取文本文件txt时候的换行问题

    千次阅读 2021-02-12 20:32:37
    文本文件如下,我写的程序也在下面,用java读取一行以后进行字符操作(细节可以忽略),但是我下面写的程序只能够读一行,我不知道该怎么去让java判断读哪一行(本来我爸temp写成二维...文本文件如下,我写的程序也在...
  • 本次写的实现方法是将创建一个BufferedReader缓存读取流读取文件内容,每读取一行判断是不是含有替换的原字符串oldString,如果含有则将原字符串替换成要替换的字符串newString,然后将改行内容写入创建的新文件中...
  • 一款非常好用的超级批量文本替换工具,软件支持htm、html、asp、java等类型的文件,可以帮助用户快速替换掉文件夹中的内容,非常方便实用。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 140,047
精华内容 56,018
关键字:

java替换文本文件内容