什么时候用字节流,什么时候用字符流?

chg2008 2005-04-09 10:18:46
写了两个文件复制的程序:
第一个 :
使用FileInputStream,FileOutputStream 如下:
import java.io.*;
public class FileCopy {
private String in;
private String out;
public FileCopy(String inName,String outName) {
in = inName;
out = outName;
}
private void copyFile ()
throws Exception {
FileInputStream fis = new FileInputStream(in);
FileOutputStream fos = new FileOutputStream(out);
byte[] b = new byte[256];
while(fis.read(b)!=-1) {
fos.write(b);
}
fis.close();
fos.close();
}
public static void main(String[] args) throws Exception {
try {
FileCopy fc = new FileCopy("f:\\help.bmp","g:\\help.bmp");
fc.copyFile();
}
catch (Exception e) {
e.printStackTrace();
}
}
}

第二个用BufferedReader,BufferedWriter 如下
import java.io.*;
public class FileCopy {
private String in;
private String out;
public FileCopy(String inName,String outName) {
in = inName;
out = outName;
}
private void copyFile ()
throws Exception {
BufferedReader fis = new BufferedReader(new FileReader(in));
BufferedWriter fos = new BufferedWriter(new FileWriter(out));
char[] b = new char[256];
while(fis.read()!= -1) {
fos.write(b);
}
fis.close();
fos.close();
}
public static void main(String[] args) throws Exception {
try {
FileCopy fc = new FileCopy("f:\\help1.bmp","g:\\help11.bmp");
fc.copyFile();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
结果,第一种方法生成的bmp与原来的一样,而第二种方法生成的bmp却无法打开?
请问是为什么?
...全文
266 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluebilly 2005-04-11
  • 打赏
  • 举报
回复
图片属于二进制文件,不能以文本文件打开,就象用文本打开可执行文件再保存后明显的文件所尺寸不一样啦,你可以试试!
yonggui111 2005-04-10
  • 打赏
  • 举报
回复
处理文本用Reader和Writer,否则用Steam
allenhe 2005-04-09
  • 打赏
  • 举报
回复
BufferedReader是用文本格式打开的说。。就是已经用Charset转换过了。
你去看下源代就知道了。

62,614

社区成员

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

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