黑马程序员技术交流社区
标题:
IO 流
[打印本页]
作者:
姚志华
时间:
2011-10-5 21:51
标题:
IO 流
public static void copy1(){
FileWriter fw=null;
FileReader fr=null;
BufferedReader bufr=null;
BufferedWriter bufw=null;
try {
fw=new FileWriter("demo.txt",true);
fr=new FileReader("copy.txt");
bufr=new BufferedReader(fr);
bufw=new BufferedWriter(fw);
String line=null;
while((line=bufr.readLine())!=null){
bufw.write(line);
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fr!=null){
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fw!=null){
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
谁能告诉我这段程序哪不对,为什么复制不了?程序没有报错.再有,如果BufferedReader建一个缓存区, BufferedWriter的时候再建一个是不是重了,能只建一个吗?
作者:
匿名
时间:
2011-10-5 22:14
没有刷新吧
作者:
曾公亮
时间:
2011-10-5 22:56
不好意思,刚刚弄错了,复制文件最好用字节流。
改两个地方:
将bufw.write(line);
换成:
bufw.write(line,0,line.length());
再写上:bufw.flush();
[
本帖最后由 曾公亮 于 2011-10-05 23:14 编辑
]
作者:
匿名
时间:
2011-10-5 23:22
调用flush方法,将字节发出。
作者:
匿名
时间:
2011-10-5 23:27
没有复制的直接原因是,没有涮洗缓冲字节流。缓冲流循环写入时,每次调用write()方法后都要刷新。
在bufw.write(line); 后加一句bufw.flush();就解决问题了
作者:
姚志华
时间:
2011-10-6 11:52
我这样改完还是不行
while((line=bufr.readLine())!=null){
bufw.write(line);
bufw.newLine();
bufw.flush();
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2