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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邹海洋 中级黑马   /  2012-11-23 10:37  /  1485 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邹海洋 于 2012-11-23 10:50 编辑

代码;

/*
复制图片

*/
import java.io.*;
class CopyPic
{
public static void main(String[] args)
{
  //创建字节流对象与图片相关联
  FileOutputStream fos = null ;
  FileInputStream fis = null;
  try
  {
   fos = new FileOutputStream("e:\\图片\\3.bmp");
   fis = new FileInputStream("e:\\图片\\1.bmp");
   byte[] buf = new byte[1024];
   int len = 0;
   while ((len = fis.read(buf))!= -1)
   {
    System.out.println(new String (buf,0,len));
   }
  }
  catch (IOException e)
  {
   throw new RuntimeException("文件创建失败");
  }
  finally
  {
   try
   {
    if (fis!= null)
    {
     fis.close();
    }
   }
   catch (IOException e)
   {
    throw new RuntimeException("关闭异常");
   }
   try
   {
    if (fos!= null)
    {
     fos.close();
    }
   }
   catch (IOException e)
   {
    throw new RuntimeException("关闭异常");
   }
  }
}
}
现象


CM$E$Q@N$HD__}IQ][BSJ`L.jpg (134.44 KB, 下载次数: 17)

CM$E$Q@N$HD__}IQ][BSJ`L.jpg

评分

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

查看全部评分

4 个回复

倒序浏览
代码写错了 呵呵 自己找到了
回复 使用道具 举报
看你的代码,你是想把1.bmp复制到3.bmp中
fos = new FileOutputStream("e:\\图片\\3.bmp");
fis = new FileInputStream("e:\\图片\\1.bmp");
那你为什么读取以后往控制台打印呢,图片打印出来肯定是乱码了,如果想把
复制到3.bmp.就需要把代码如下改写:

while ((len = fis.read(buf))!= -1)
    {
       fos.write(buf,0,len);
    }
这样通过输出流,写到3.bmp中

评分

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

查看全部评分

回复 使用道具 举报
邵天强 发表于 2012-11-23 11:04
看你的代码,你是想把1.bmp复制到3.bmp中
fos = new FileOutputStream("e:\\图片\\3.bmp");
fis = new Fil ...

嗯 对的 谢谢了 自己也找到了 看视频的时候可以完全理解,但自己写的时候老是出错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马