黑马程序员技术交流社区

标题: 运用转换流将一个图片文件中的数据拷贝到另一个文件中,错哪了?? [打印本页]

作者: 刘丰伟    时间: 2012-12-28 20:14
标题: 运用转换流将一个图片文件中的数据拷贝到另一个文件中,错哪了??
  1. /*
  2. 练习:运用转换流将一个图片文件中的数据拷贝到另一个文件中。
  3. */

  4. import java.io.*;
  5. class TransTest
  6. {
  7.          public static void main(String[] args)throws IOException
  8.          {
  9.                  FileInputStream fis=new FileInputStream("E:\\ 002.jpg");
  10.                  InputStreamReader isr=new InputStreamReader(fis);
  11.                  BufferedReader bufr=new BufferedReader(isr);
  12.                  FileOutputStream fos=new FileOutputStream("c:\\002.jpg");
  13.                  OutputStreamWriter osw=new OutputStreamWriter(fos);
  14.                  BufferedWriter bufw=new BufferedWriter(osw);
  15.                  String len=null;
  16.                          if ((len=bufr.readLine())!=null)
  17.                          {
  18.                                  bufw.write(len);
  19.                                  bufw.newLine();
  20.                                  bufw.flush();
  21.                          }
  22.                          bufr.close();
  23.                          bufw.close();
  24.          }
  25. }
复制代码
拷贝的图片大小比原图片小,为什么?
作者: 肖志锋    时间: 2012-12-28 20:35
你的代码没有错,但这是必然的,你要明白,除了文本,其他的东西去用字符流传输的话,肯定是会有丢失的,你的那个图片应该是打不开了吧。
首先你要知道什么是字符流跟字节流的区别,字符是2个字节,在将你文件里面的东西转化成字符的时候,如果是单数字节的呢?那个字符可能就丢失了。
这样下来你的文件必然就变小了,还损坏了。所以其他的文件还是字节流传输。
作者: 清水    时间: 2012-12-28 21:00
一看到标题 转换流 和 图片。我就知道楼主出错了。

哎……




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2