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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 睡不够的猪 中级黑马   /  2013-11-2 11:57  /  749 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

各位坛友,我下面这个代码写的有问题吗?为什么复制图片的时候,生成的图片大小不对,但是复制文件的时候,没有问题呢?
  1. import java.io.*;

  2. class CopyTest
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 File file = new File("e:\\1.jpg");
  7.                 File copy_file = new File("e:\\copy.jpg");

  8.                 copyFile(file,copy_file);
  9.                
  10.         }

  11.         public static void copyFile(File file,File copy_file)
  12.         {
  13.                
  14.                 if(!file.exists())
  15.                 {
  16.                         System.out.println("文件不存在,请选择正确的文件!");
  17.                         return;
  18.                 }
  19.                
  20.                 BufferedReader bufr = null;
  21.                 BufferedWriter bufw = null;

  22.                 try
  23.                 {
  24.                         bufr = new BufferedReader(new InputStreamReader(new FileInputStream(file)));

  25.                         bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(copy_file)));
  26.                        
  27.                         char[] buf = new char[1024];
  28.                         //String line = null;
  29.                         int len = 0;
  30.                         while((len = bufr.read(buf))!= -1)
  31.                         {
  32.                                 bufw.write(buf,0,len);
  33.                                 bufw.flush();
  34.                         }
  35.                        
  36.                 }
  37.                 catch (IOException e)
  38.                 {
  39.                         throw new RuntimeException("复制文件失败");
  40.                 }
  41.                 finally
  42.                 {
  43.                         try
  44.                         {
  45.                                 if(bufr!=null)
  46.                                         bufr.close();
  47.                         }
  48.                         catch (IOException e)
  49.                         {
  50.                                 throw new RuntimeException("关闭读取流失败");
  51.                         }
  52.                         try
  53.                         {
  54.                                 if(bufw!=null)
  55.                                         bufw.close();
  56.                         }
  57.                         catch (IOException ex)
  58.                         {
  59.                                 throw new RuntimeException("关闭输出流失败");
  60.                         }
  61.                 }
  62.         }
  63. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

1 个回复

倒序浏览
复制图片不能用字符流,要是字节流,
因为你用的是字符流,所以复制后 的图片无法解析,你换成字节流,就OK了。
希望对你有帮助!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马