package com.io.demo;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class ReplaceDemo1 {
/*
* 读取模板文件pet.template
* 将具体宠物信息存入,替换后保存成pet.txt
*
* Reader 字符流读取父类 抽象类
* InputStreamReader 子类
*/
public static void main(String[] args) {
// 读取
FileInputStream fis = null;
InputStreamReader isr = null;
BufferedReader br = null;
// 写入
FileOutputStream fos = null;
OutputStreamWriter osw = null;
BufferedWriter bw = null;
try {
// 读取 // 相对路径就是相对于当前文件的路径
fis = new FileInputStream("pet.template"); // 此处是相对路径,路径需求是哪改到哪就可以
isr = new InputStreamReader(fis);
br = new BufferedReader(isr);
// 写入
fos = new FileOutputStream("pet.txt"); // 此处是相对路径,按需求指定路径就可以
osw = new OutputStreamWriter(fos);
bw = new BufferedWriter(osw);
String str1 = null;
// 线程安全,可多线程操作字符串
StringBuffer sbf = new StringBuffer();
while((str1 = br.readLine()) != null) {
sbf.append(str1);
}
System.out.println("替换前:");
System.out.println(sbf.toString());
String str2 = sbf.toString();
str2 = str2.replace("{name}", "四脚吞金兽");
str2 = str2.replace("{type}", "上古神兽");
str2 = str2.replace("{master}", "蹦跶跶大仙儿");
System.out.println("替换后:");
System.out.println(str2);
bw.write(str2);
bw.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
// 读取
fis.close();
isr.close();
br.close();
// 写入
fos.close();
osw.close();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}