您的位置:首页 > 编程语言 > Java开发

Java语言程序设计(二十五)文件替换文本的具体实现

2021-01-22 23:01 288 查看

假设要编写一个名为ReplaceText的程序,用一个新字符串替换文本文件中所有出现某个字符串的地方,文件名和字符串都作为命令行参数传递,如下所示: java ReplaceText sourceFile targetFile oldString newString

      这里面一共有四个参数,第一个是sourceFile,是要替换的文件,targetFile是第二个参数,是替换后的新文件保存的地方,后面两个是新旧的字符串。我们这个程序首先检查传给mian方法的参数个数,检查源文件和目标文件是否存在,之后为源文件创建一个Scanner,为目标文件创建一个PrintWriter,然后重复从源文件读入一行,替换文本,向目标文件中写入新的一行,必须关闭输出文件,以确保数据正确保存在文件中。

package tihuan;

/**
 *
 * @author john
 */
import java.io.BufferedReader;
import java.io.CharArrayWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;

public class Tihuan {

    public static String path="D:\\a.txt";

    public static void main(String[] args) throws Exception {
        //待替换字符
        String aStr="http";
        //替换字符
        String bStr="https";

        //读取文件
        File file=new File(path);

        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));

        //内存流
        CharArrayWriter caw=new CharArrayWriter();

        //替换
        String line=null;

        //以行为单位进行遍历
        while((line=br.readLine())!=null){
            //替换每一行中符合被替换字符条件的字符串
            line=line.replaceAll(aStr, bStr);
            //将该行写入内存
            caw.write(line);
            //添加换行符,并进入下次循环
            caw.append(System.getProperty("line.separator"));
        }
        //关闭输入流
        br.close();

        //将内存中的流写入源文件
        FileWriter fw=new FileWriter(file);
        caw.writeTo(fw);
        fw.close();
    }
}

      我们事先在D盘中创建一个.txt文件

      在执行程序过后。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: