黑马程序员技术交流社区

标题: 复制图片,导致cmd无响应,求解? [打印本页]

作者: 邹海洋    时间: 2012-11-23 10:37
标题: 复制图片,导致cmd无响应,求解?
本帖最后由 邹海洋 于 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, 下载次数: 14)

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

作者: 邹海洋    时间: 2012-11-23 10:49
代码写错了 呵呵 自己找到了
作者: 邵天强    时间: 2012-11-23 11:04
看你的代码,你是想把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中
作者: 邹海洋    时间: 2012-11-23 11:07
邵天强 发表于 2012-11-23 11:04
看你的代码,你是想把1.bmp复制到3.bmp中
fos = new FileOutputStream("e:\\图片\\3.bmp");
fis = new Fil ...

嗯 对的 谢谢了 自己也找到了 看视频的时候可以完全理解,但自己写的时候老是出错




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