FileReader fr = new FileReader("1.jpg");
FileWriter fw = new FileWriter("copy.jpg");
int b;
while((b=fr.read())!= -1){
fw.write(b);
}
fr.close();
fw.close();
原来文件是1,097,126 bytes
拷贝过去文件是1,001,956 bytes
发现大小是有差异的
原因是把字节转成字符 不一定在我这码表中都能够查到比如说我把两个字节组合到一起 将字节转换成字符没有查到对应值我就用?代替 中间接收就是一个?
?号在写出的时候我也拆成不了字节 所以写出的时候可能就将?写过去了这样有一些字节就没有写过去 这样图片数据就破坏了
结论:
* 不可以拷贝非纯文本的文件
* 因为在读的时候会将字节转换为字符,在转换过程中,可能找不到对应的字符,就会用?代替,写出的时候会将字符转换成字节写出去
* 如果是?,直接写出,这样写出之后的文件就乱了,看不了了