黑马程序员技术交流社区

标题: 复制一张图片,写一下思路,和注释 [打印本页]

作者: LTT    时间: 2015-5-27 21:39
标题: 复制一张图片,写一下思路,和注释
复制一张图片

作者: 想要那片海    时间: 2015-5-27 22:33
import java.io.*;
public class CopyPic {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                File from=new File("E:\\java123\\黑马考试\\pic001.jpg");
                File to=new File("E:\\java123\\黑马考试\\pic005.jpg");
                //判断源文件是否存在,如果不存在,抛出异常
                if(!from.exists())
                        throw new RuntimeException("源文件不存在");
                //如果目的文件已经存在,抛出异常
                if(to.exists())
                        throw new RuntimeException("目的文件已经存在,请重命名");
                copyPic(from,to);
        }
        public static void copyPic(File from,File to)
        {
               
                InputStream in=null;//定义读取流
                OutputStream out=null;//定义写入流
                try {
                        in=new FileInputStream(from);//读取流关联源文件
                        out=new FileOutputStream(to);//写入流关联目的文件
                        byte[] by=new byte[1024];
                        int len=0;
                        while((len=in.read(by))!=-1)
                        {
                                out.write(by, 0, len);//将读取到的数据写入目的文件
                                out.flush();//即时刷新
                        }
                        System.out.println("图片复制成功");
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                finally
                {
                       
                                try {
                                        //关闭流
                                if(in!=null)       
                                        in.close();
                                if(out!=null)
                                out.close();
                                } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                       
                }
        }
}

作者: bin2015    时间: 2015-5-28 09:39
  1. public class CopyImage {
  2.        
  3.         public static void main(String[] args) throws Exception {
  4.                 //找到目标文件
  5.                 File inFile = new File("F:\\美女\\1.mp3");
  6.                 File outFile = new File("E:\\拷贝.mp3");
  7.                 //建立数据通道
  8.                 FileInputStream fileInputStream = new FileInputStream(inFile);
  9.                 FileOutputStream fileOutputStream = new FileOutputStream(outFile);
  10.                 //建立缓冲字节数组,边读边写
  11.                 byte[] buf = new byte[1024];
  12.                 int length = 0 ; //用于记录每次读取的字节个数
  13.                 while((length=fileInputStream.read(buf))!=-1){   // 700   300
  14.                         fileOutputStream.write(buf,0,length);
  15.                 }
  16.                 //关闭资源(关闭资源的原则:先开后关,后开先关)
  17.                 fileOutputStream.close();
  18.                 fileInputStream.close();
  19.                
  20.                
  21.                
  22.         }

  23. }
复制代码

作者: kmlitheima    时间: 2015-5-28 10:29
。。。。。。。没看到图哇?
作者: FTD-2009    时间: 2015-5-28 10:40
看层主的回复张知识了
作者: YRDHelloworld    时间: 2015-5-28 12:04
复制一张图片要用到的是字节流对象

class  FileStreamDemo
{
        public static void main(String[] args)
        {
                FileOutputStream fos=null;
                FileInputStream fis=null;
         try
         {
                         fos=new FileOutputStream("c:\\3.jpg");   //文件写入流对象
                         fis=new FileInputStream("c:\\2.jpg");   //文件读取流对象

                         byte[] by=new byte[1024*4];    //定义一个字节数组,用于存储读取到的图片
   
                 int len=0;     //初始化一个值
            
                         while((len=fis.read(by))!=-1)   //read方法,将字节数组作为参数传递给读取流对象,不等于-1就向写入流对象总写入
                         {
                              fos.write(by,0,len);
                         }
         }
         catch (IOException e)
         {
                         throw new RuntimeException("图片复制失败");
         }
                 finally
                 {
                      try
                      {
                                    if(fos!=null)
                                     {
                                             fos.close();
                                         }
                      }
                     catch (IOException e)
              {
                            throw new RuntimeException("写入复制失败");
              }
                            try
                      {
                                    if(fis!=null)
                                     {
                                             fis.close();
                                         }
                      }
                     catch (IOException e)
              {
                             throw new RuntimeException("读取复制失败");
              }
                    
                 }
               
        }
}




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