package?k;
import?java.io.FileInputStream;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.io.InputStreamReader;
import?java.io.OutputStreamWriter;
public?class?IsrAndOswDemo?{
public?static?void?main(String[]?args)?throws?IOException?{
FileInputStream?in=new?FileInputStream("D:\\test\\日記3.txt");
InputStreamReader?isr=new?InputStreamReader(in,"gbk");
FileOutputStream?out?=?new?FileOutputStream("D:\\test\\日記1.txt");
OutputStreamWriter?osw=new?OutputStreamWriter(out,"gbk");
/*int?c;
while((c=isr.read())!=-1){
System.out.print((char)c);
}*/
char[]?buffer=new?char[20*1024];
int?c;
//字節(jié)批量讀取,返回的是讀到的字節(jié)的個數(shù)
while((c=isr.read(buffer,?0,?buffer.length))!=-1){
String?s=new?String(buffer,0,c);
System.out.print(s);
osw.write(buffer,?0,?c);
}
osw.flush();
isr.close();
osw.close();
}
}就像上方的代碼,in和out沒有close可以么?
1 回答
已采納

喵喵小喵
TA貢獻(xiàn)5條經(jīng)驗 獲得超3個贊
可以的。InputStreamReader是將字節(jié)流轉(zhuǎn)換為字符流;OutputStreamWriter是將字節(jié)流轉(zhuǎn)換為字符流。
而每一個文件,只要打開了,就必須要關(guān)閉。
添加回答
舉報
0/150
提交
取消