黑马程序员技术交流社区

标题: 构造方法中的传入参数能够使FIle对象吗? [打印本页]

作者: 吴刚—heima    时间: 2013-5-28 15:55
标题: 构造方法中的传入参数能够使FIle对象吗?
昨天做黑马的基础测试题的时候,有一道题是让我写一个拷贝文件的方法,享乐一下定义一个类

  1. class CopyFie(FIle f1,FIle f2)
  2. {
  3.      public void CopyFile(Fille f1,File f2)
  4.      {
  5.            //这里怎样将主函数定义的两个FIle对象传进来,并让当前类的其他方法能够实用呢。
  6.      }
  7. }
复制代码
我在这里纠结了很久,最好还是放弃了面向对象的编程方法,全部写到了主函数中去了,如果有知道的朋友还望不吝赐教。


作者: ZhaoYuBetter    时间: 2013-5-28 16:36
class CopyFie(FIle f1,FIle f2),这里写错了
作者: 吴刚—heima    时间: 2013-5-28 16:48
哦,你可以忽略我这个拼写错误,我主要想问的是一个类的构造函数的传入参数能不能是File对象,如果能,那么怎样接受!
作者: 陈潜    时间: 2013-5-28 22:44
import java.io.*;

//我主要想问的是一个类的构造函数的传入参数能不能是File对象,如果能,那么怎样接受!

class CopyFile{
        //首先要定义接受的参数
        private File f1;
        private File f2;
       
         //构造函数初始化
     public CopyFile(File f1,File f2){
             this.f1 = f1;
             this.f2 = f2;
     }
     
     //复制的方法,因为两个文件都是成员变量,可以直接调用
     public void doCopy(){
             BufferedInputStream bis = null;
             BufferedOutputStream bos =null;
             try {
                        bis = new BufferedInputStream(new FileInputStream(this.f1));
                        bos = new BufferedOutputStream(new FileOutputStream(this.f2));
                       
                        int by = 0;
                        while((by=bis.read()) != -1){
                                bos.write(by);
                        }
                } catch (IOException e) {
                        e.printStackTrace();
                }finally{
                        try {
                                if(bis != null)
                                        bis.close();
                        } catch (IOException e) {
                                e.printStackTrace();
                        }
                        try {
                                if(bis != null)
                                        bis.close();
                        } catch (IOException e) {
                                e.printStackTrace();
                        }
                }
             
     }
     
     public static void main(String[] args) {
            File f1 = new File("hello.html");
            File f2 = new File("hello1.html");
           
            CopyFile d = new CopyFile(f1,f2);       
            d.doCopy();
        }     
}
这个是否是你想要的?
作者: 袁梦希    时间: 2013-5-29 17:12
如果问题已经解决,请把帖子的类型改为已经解决,如果不会解决请看我的个性签名。




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