题意:
将文本文件中的所有src替换为dst
方法一:使用String
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner; public class Demo2 {
public static void main(String[] args) throws FileNotFoundException {
// 使用Scanner处理文本
Scanner sc = new Scanner(new File("ddd.txt")); // 文件可能不存在,所以要声明异常
String passage = ""; while(sc.hasNextLine()) // 把ddd.txt的内容保存到passage字符串中
passage += sc.nextLine() + "\n"; // nextLine()中不包含回车 // 把ddd.txt中的src替换为dst
String src = "Hello";
String dst = "World";
passage = passage.replace(src, dst); // 注意replace()方法的返回值
// 使用PrintWriter写入文本
PrintWriter pw = new PrintWriter("ddd.txt");
pw.print(passage); // 将替换后的文本写回ddd.txt (覆盖写) pw.close(); // 记得关流,不然数据写不进去
}
}
方法二:使用StringBuffer
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner; public class Demo {
public static void main(String[] args) throws FileNotFoundException {
// 使用Scanner处理文本
Scanner sc = new Scanner(new File("ddd.txt")); // 文件可能不存在,所以要声明异常
StringBuffer sb = new StringBuffer();
while(sc.hasNextLine()) {
sb.append(sc.nextLine()); // nextLine()中不包含回车
sb.append('\n');
} // 把sb中的src替换为dst
String src = "static";
String dst = "Hello";
int index = sb.indexOf(src); // 找到src第一次出现的位置
int end;
while(index != -1) {
end = index + src.length();
sb.replace(index, end, dst); // 用dst替换src字符串
index = sb.indexOf(src, end); // 从end开始,可以避免不必要的扫描
}
// 使用PrintWriter写入文本
PrintWriter pw = new PrintWriter("ddd.txt");
pw.print(sb.toString()); // 将替换后的文本写回ddd.txt (覆盖写) pw.close(); // 记得关流,不然数据写不进去
}
}