黑马程序员技术交流社区
标题:
IO复制文件问题
[打印本页]
作者:
孟伟娟
时间:
2012-12-6 16:39
标题:
IO复制文件问题
import java.io.*;
public class CopyFIle {
/**复制一个文件到别的地方(如从c盘到d盘)
分析:源:c盘
目的:d盘,应该有一个文件。
先读取c盘的文件,将读取到的数据写入到目的地中。用到字符流技术。
*/
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
//创建读取流,和c盘文件相关联
FileReader fr = new FileReader("c:/abc.txt");
//创建一个写入流,和d盘文件相关联
FileWriter fw = new FileWriter("d:/copy.txt");
//方式一:
int ch = 0;
while((ch=fr.read())!=-1){
System.out.println(ch);
fw.write(ch);
fw.flush();
}
//方式二:
/*//读取文件,用read(char[] buf)方法
char[] buf = new char[1024];
int len = 0;
while((len=fr.read(buf))!=-1){
//写入写入流缓冲区中
fw.write(buf, 0, len);
//刷新缓冲区
fw.flush();
}*/
//关闭资源
fr.close();
fw.close();
}
}
复制代码
我复制txt文件,可以正常显示,但是复制doc文件时,复制后的文件为一堆乱码,怎么回事,是编码的问题吗?
作者:
陈建华
时间:
2012-12-6 17:07
doc文档采用的可能是字节流的方式,我在编写的时候也出现过这样的问题,我把他改成字节后,就没有出现问题了
作者:
孟伟娟
时间:
2012-12-7 15:09
山下竹岛 发表于 2012-12-6 17:07
doc文档采用的可能是字节流的方式,我在编写的时候也出现过这样的问题,我把他改成字节后,就没有出现问题 ...
哦,这样啊,知道了。谢谢
作者:
倪鹏博
时间:
2012-12-7 15:20
字符流只能操作纯文本文件,比如txt这种!
而doc文件是带格式的字符文件,里面包含了众多的非字符信息,比如表格,图片,字体,颜色等等!
所以不能用字符流去读写!
如果只是复制的话,字节流一样可以达到效果,而且无论文件类型哦!
作者:
7℃洋
时间:
2012-12-9 00:09
用字节流的方式读写就能避免这个错误!
作者:
郭光明
时间:
2012-12-9 11:05
用字节流去读就OK的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2