A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  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. }
复制代码
拷贝的图片大小比原图片小,为什么?

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

2 个回复

倒序浏览
你的代码没有错,但这是必然的,你要明白,除了文本,其他的东西去用字符流传输的话,肯定是会有丢失的,你的那个图片应该是打不开了吧。
首先你要知道什么是字符流跟字节流的区别,字符是2个字节,在将你文件里面的东西转化成字符的时候,如果是单数字节的呢?那个字符可能就丢失了。
这样下来你的文件必然就变小了,还损坏了。所以其他的文件还是字节流传输。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
一看到标题 转换流 和 图片。我就知道楼主出错了。

哎……
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马