黑马程序员技术交流社区

标题: 用字节复制一个图片 [打印本页]

作者: Running    时间: 2014-6-18 22:38
标题: 用字节复制一个图片
import java.io.*;
class CopyPic
{
    public static void main(String[] args)
   {
    FileOutputStream fos=null;
    FileInputStream  fis=null;
    try
   {
       fos=new  FileOutputStream ("c:\\2.bpm");
        fis=new  FileInputStream ("c:\\1.bpm");
       byte[]  buf=new  byte[1024];
        int len=0;
       while((len=fis.read(buf))!=-1)   //这里的len存的是数组的角标吗??
      {
          fos.write(buf,0,len);
       }   
    }   
        catch(IOException  e)
      {
            throw  new  RuntimeException("复制文件失败");
      }
      finally
     {
          try
            {
                  if(fis!=null)             //这个条件是什么意思?为什么在这个条件下要关资源呢??
                          fis.close();
            }
           catch(IOException  e)
      {
            throw  new  RuntimeException("读取文件失败");
      }

     }

   }
  }
请各位就程序中注释的问题给予指导,谢谢。
























作者: ゞ导火索゛    时间: 2014-6-18 22:49
len:表示fis一次读入到数组buf中的字节数
关于进行判断 if(fis!=null)  ,是因为该语句是在finally中,是必须要执行的代码,
如果在 fis=new  FileInputStream ("c:\\1.bpm");中出现FileNotFoundException异常,则fis创建不成功,在这种情况下就不需要关闭fis
作者: Running    时间: 2014-6-19 09:00
ゞ导火索゛ 发表于 2014-6-18 22:49
len:表示fis一次读入到数组buf中的字节数
关于进行判断 if(fis!=null)  ,是因为该语句是在finally中,是必 ...

明白了,谢谢。。
作者: SEPARATOR    时间: 2014-6-19 11:05

1,len中储存数组buf中的元素个数。当读到数组尾端会返回-1.
2, if(fis!=null)   因为如果fis.输入流没有被创建成功,就不需要被关闭。




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