拷贝非文本文件有问题

sandxu 2006-11-28 10:37:34
import java.io.*;
public class ReadFile {

public static void main(String args[]){
ReadFile rf=new ReadFile();
try{
rf.copy("d:\\fusion32.rar","d:\\32.rar");
}
catch(Exception e){
e.printStackTrace();
}
}
public void copy(String fileName,String copyFileName) throws Exception{

BufferedReader reader=new BufferedReader(new FileReader(fileName));
BufferedWriter writer=new BufferedWriter(new FileWriter(copyFileName));

String str=null;
str=reader.readLine();
while(str!=null)
{
writer.write(str+"\r\n");

str=reader.readLine();
}
reader.close();
writer.close();
}

}

拷贝的rar文件不能打开,长度有问题,请问是怎么回事?
如果有FileInputStream,FileOutputStream就没有问题。
...全文
134 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chinajash 2006-11-29
  • 打赏
  • 举报
回复
同意treeroot的解释
千里冰封820 2006-11-29
  • 打赏
  • 举报
回复
有问题是因为楼主用了读文本文件的方法,而非文本文件只是二进制流
所以要用读二进制流的方法来读它
treeroot 2006-11-29
  • 打赏
  • 举报
回复
另外搞不懂楼主为什么使用字符Reader

使用字节流方式显示效率更高
treeroot 2006-11-29
  • 打赏
  • 举报
回复
当然有问题
InputStream/OutputStream是字节流
Reader/Writer是字符流

字节流可以读取任何文件(文件本身是字节构成的)
字符流试图使用一种编码(比如GBK)把字节转成字符,如果不是文本文件的话,就会有乱码

使用readLine就一塌糊涂了
beiouwolf 2006-11-29
  • 打赏
  • 举报
回复
当然不对了
你把字节转换成字符了

比如原来的数据是 0xAABBCC 字节数组就是 0xAA 0xBB 0xCC
但是你转成字符就变成了 三个字 文字1 文字2 文字3
zxh2208180 2006-11-28
  • 打赏
  • 举报
回复
up

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧