命令行参数,替换文件中的字符串,

命令行参数,替换文件中的字符串,

题目

命令行参数,替换文件中的字符串,

/replace file1 file2 old new 将file1中的old 都替换成 new 并且保存在file2中
要求: 必须对文件有正确的检测性

代码(源码点击这里)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 以下是一个简单的实现,可以通过命令行参数传入原文件路径、目标文件路径、要替换字符串替换的目标字符串。请注意,此实现假定要替换字符串唯一出现在原文件。如果要替换多个字符串,需要进行修改。 ```java import java.io.*; public class ReplaceText { public static void main(String[] args) { if (args.length != 4) { System.out.println("Usage: java ReplaceText sourceFile targetFile oldStr newStr"); System.exit(1); } // 获取命令行参数 String sourceFile = args[0]; String targetFile = args[1]; String oldStr = args[2]; String newStr = args[3]; // 读取原文件并进行替换 try (BufferedReader reader = new BufferedReader(new FileReader(sourceFile)); BufferedWriter writer = new BufferedWriter(new FileWriter(targetFile))) { String line; while ((line = reader.readLine()) != null) { line = line.replace(oldStr, newStr); writer.write(line); writer.newLine(); } System.out.println("Replacement complete!"); } catch (IOException e) { System.err.println("Error: " + e.getMessage()); } } } ``` 使用示例: ``` java ReplaceText /path/to/source.txt /path/to/target.txt oldString newString ``` 其 `/path/to/source.txt` 是原文件路径,`/path/to/target.txt` 是目标文件路径,`oldString` 是要替换字符串,`newString` 是替换的目标字符串。 ### 回答2: 可以使用Java的IO流和字符串处理方法来实现这个程序。首先,我们需要通过命令行参数获取原来的文件路径、目标文件路径、要替换字符串替换的目标字符串。然后,我们可以使用BufferedReader和BufferedWriter来读取和写入文件。 程序的大致逻辑如下: 1. 获取命令行参数,包括原来的文件路径、目标文件路径、要替换字符串替换的目标字符串。 2. 创建一个BufferedReader对象,用于读取原来的文件。 3. 创建一个BufferedWriter对象,用于写入目标文件。 4. 通过循环逐行读取原来的文件内容,使用String的replace方法将要替换字符串替换替换的目标字符串。 5. 将替换后的内容写入目标文件。 6. 关闭读写流。 这样,通过ReplaceText程序,我们可以将一个文档的特定字符串替换为另外一个给定字符串,同时原来的文档内容不受影响,替换后的内容保存在新的文件。 以下是一个示例的Java代码实现: ```java import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class ReplaceText { public static void main(String[] args) { if (args.length != 4) { System.out.println("请提供原文件路径、目标文件路径、要替换字符串替换的目标字符串作为命令行参数"); return; } String originalFilePath = args[0]; String targetFilePath = args[1]; String replaceString = args[2]; String replaceTargetString = args[3]; BufferedReader reader; BufferedWriter writer; try { reader = new BufferedReader(new FileReader(originalFilePath)); writer = new BufferedWriter(new FileWriter(targetFilePath)); String line; while ((line = reader.readLine()) != null) { line = line.replace(replaceString, replaceTargetString); writer.write(line); writer.newLine(); } writer.flush(); reader.close(); writer.close(); System.out.println("替换完成"); } catch (IOException e) { e.printStackTrace(); } } } ``` 通过命令行输入类似于下面的命令: ``` java ReplaceText original.txt target.txt replace_this with_this ``` 其,`original.txt`是原来的文件路径,`target.txt`是目标文件路径,`replace_this`是要替换字符串,`with_this`是替换的目标字符串。执行程序后,将会生成目标文件`target.txt`,其原来的文件`original.txt`字符串`replace_this`会被替换为`with_this`。 ### 回答3: 设计并实现一个Java程序ReplaceText,满足以下需求:原来的文件、目标文件、要替换字符串替换的目标字符串都通过命令行参数传入。 ```java import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class ReplaceText { public static void main(String[] args) { // 命令行参数传入要替换文件路径、目标文件路径、要替换字符串替换的目标字符串 if (args.length != 4) { System.out.println("参数个数不正确!"); return; } String filePath = args[0]; // 原文件路径 String targetFilePath = args[1]; // 目标文件路径 String replaceStr = args[2]; // 要替换字符串 String targetStr = args[3]; // 替换的目标字符串 try (BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath)); BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(targetFilePath))) { String line; while ((line = bufferedReader.readLine()) != null) { // 在每一行替换字符串 String replacedLine = line.replace(replaceStr, targetStr); bufferedWriter.write(replacedLine); bufferedWriter.newLine(); } } catch (IOException e) { System.out.println("文件读写出错:" + e.getMessage()); } } } ``` 该程序通过命令行参数传入需要替换文本的文件路径、目标文件路径、要替换字符串替换的目标字符串。使用BufferedReader读取原文件的内容,逐行替换字符串并写入到BufferedWriter,最后关闭文件流。原来的文件内容不受影响,替换后的内容保存在新的文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值