版权声明:原创内容是本人学习总结,仅限学习使用,禁止用于其他用途。如有错误和不足,欢迎评论指正补充。 https://blog.csdn.net/qian_qian_123/article/details/85238301
pet.template
您好!
我的名字是{name},我是一只{type}。
我的主人是{master}。
复制替换成如下:
pet.txt
您好!
我的名字是丫丫,我是一只企鹅。
我的主人是小明。
代码如下:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/**
* 缓冲流
*
* 利用字符流复制文本文档
*
* 实际是通过缓冲流来包装完成
*
* @author wendi
*
*/
public class DD {
public static void main(String[] args) {
FileReader fr = null;
BufferedReader br = null;
FileWriter fw = null;
BufferedWriter bw = null;
try {
// 将pet.template中的数据替换复制到pet.txt中
fr = new FileReader("d:/pet.template");
br = new BufferedReader(fr);
fw = new FileWriter("d:/pet.txt");
bw = new BufferedWriter(fw);
// 作为循环开始停止的标识
boolean flag = true;
// 循环读取文本文档中的内容
while (flag) {
String str = br.readLine();
// 通过BufferedReader的String readLine() 返回的null,表示读到文件末尾
// 如果读到最后一行,则停止循环
if (str == null) {
flag = false;
} else {
str = str.replace("{name}", "丫丫");
str = str.replace("{type}", "企鹅");
str = str.replace("{master}", "小明");
// System.out.println(str);
// 使用BufferedWriter 写一个换行符 writer(String str)
bw.write(str);
// newLine() 写一个换行符, 在文件中换行
bw.newLine();
}
}
bw.flush(); // 刷新缓冲区, 把缓冲区的数据全部写入到文件
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 关闭处理流, 会把嵌套的IO也关闭
if (bw != null) {
bw.close();
}
if (br != null) {
br.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}