java.io.IOException: Stream closed这个问题怎么解决啊~新人求助啊~
W_fat 2017-10-08 11:14:26 package cn.java;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
public class fferedDemo3 {
//@SuppressWarnings("null")
public static void main(String[] args) {
//创建输入流
Reader rd = null;
BufferedReader reader = null;
//创建输出流
Writer wr = null;
BufferedWriter writer = null;
try{
//创建一个对象
rd = new FileReader("d:/pet.template");
reader = new BufferedReader(rd);
String line;
StringBuffer sbf = new StringBuffer();
while((line=reader.readLine())!=null){
sbf.append(line);
}
System.out.println("替换前:"+sbf);
String newString = sbf.toString().replace("{name}","噢噢");
newString = newString.replace("{type}","小狗");
newString = newString.replace("{master}","小明");
wr = new FileWriter("e:/pet.txt");
writer = new BufferedWriter(wr);
writer.flush();
writer.write(newString);
System.out.println("替换后:"+newString);
}catch(IOException e){
e.printStackTrace();
}finally{
if(wr!=null){
try{
wr.close();
}catch(IOException e){
e.printStackTrace();
}
}
if(writer!=null){
try{
writer.close();
}catch(IOException e){
e.printStackTrace();
}
}
if(rd!=null){
try{
rd.close();
}catch(IOException e){
e.printStackTrace();
}
}
if(reader!=null){
try{
reader.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
}
运行后会原本在d盘创建的pet文件会在这里输出时出现乱码,还会报:
java.io.IOException: Stream closed
at sun.nio.cs.StreamEncoder.ensureOpen(StreamEncoder.java:26)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:99)
at java.io.OutputStreamWriter.write(OutputStreamWriter.java:190)
at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:111)
at java.io.BufferedWriter.close(BufferedWriter.java:246)
at cn.java.fferedDemo3.main(fferedDemo3.java:58)
错
求各位大神帮助解决