通过命令行参数替换.txt文本文档中的指定文字(java)

这篇博客介绍了如何使用Java通过命令行参数替换.txt文本文档中的指定文字。首先解释了命令行参数的概念,然后提供了代码示例,展示如何在主函数中接收并使用这些参数进行文本替换。运行时,需要提供源文件、目标文件、旧字符串和新字符串,确保源文件存在于指定路径。文章还提到了当源文件在不同路径时的处理方法。

1.相关知识

所谓命令行参数,说白了其实就是在编译好之后,运行程序时需要带入参数,例如:

java calssName 参数1 参数2……

这里其实我们输入的参数存储在args[0],args[1],args[2]……中,即:

java className args[0] args[1] args[2]……

代码的主函数中,String[] args 这个字符串数组是保存运行main函数时输入的参数的。

2.代码及注释

在了解了命令行参数之后,我们可以完成通过命令行参数替换.txt文本文档中的指定文字,关于文本处理中的文字替换的内容可以参见我的另两篇文章:
1、Java ,使用String类处理定长的字符串(组合、转换、替换、分隔、字符串与数组之间的转换)
2、Java—文件的读、写操作
代码:

/*功能:文本替换
*输入4个参数:源文件(source_file)、目标文件(target_file)、需要改的字符串(old_string)、新的字符串(new_string)
*注:源文件是需要被改的文件,目标文件是替换结束后用于存储新文本的文件
*输出:目标文件(target_file)
*2018.11.4
*/
import java.io.File;//引入File类
import java.io.PrintWriter;//引入PrintWriter类,用于写数据入文件
import java.util.Scanner;//引入Scanner类,用于从文件读数据

class replace{
	public static void main(String[] args) throws Exception{
		//输入的四个参数存储在数组arg[]中
		File source_file = new File(args[0]);
		//System.out.println(args[0]);
		//检测原文件是否存在
		if (!source_file.exists()) {
			System.out.println("源文件"+args[0]+"不存在");
			System.exit(0);
		}
		File target_file = new File(args[1]);//第二个参数
		//检测目标文件是否已经存在
		if (target_file.exists()) {
			System.out.println("目标文件"+args[1]+"已经存在");
			System.exit(0);
		}
		//读和写对象
		Scanner input = new Scanner(source_file);//读取源文件对象
		PrintWriter output = new PrintWriter(target_file);//写入目标文件的对象
		while(input.hasNext()){//判断是否还有可读的内容
			String str1 = input.nextLine();//读取源文件的内容
			String str2 = str1.replaceAll(args[2],args[3]);//把文本中的所有的第三个参数替换成第四个参数
			output.println(str2);//替换后的新的文内容写入到目标文件
		}
		input.close();//.close()方法关闭文件,释放被文件占用的资源
		output.close();//.close()方法关闭文件,如果不关闭,数据不能保存在文件中
	}
}

3.运行

运行时,需要输入4个参数,分别是源文件、目标文件、旧字符串、新字符串,即:

java replace 源文件 目标文件 旧字符串 新字符串

其中源文件要存在,并且在当前文件夹下:
在这里插入图片描述
源文件内容:
在这里插入图片描述
执行代码:
在这里插入图片描述
结果:
在这里插入图片描述
生成新的目标文件内容:
在这里插入图片描述

若源文件不在当前文件夹,例如在上一级路径:
在这里插入图片描述
那么,执行代码示例:
在这里插入图片描述
输入的第一个参数相当于带路径的源文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值