1. 程式人生 > >IO流拷貝檔案目錄和檔案

IO流拷貝檔案目錄和檔案

package yn.ngems.cn;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class JavaDemo{
    public static void main(String[] args) throws IOException {
        if(args.length != 2) {
            System.out.println("系統執行錯誤,請檢查!");
            System.exit(1);
        }
        long start = System.currentTimeMillis();
        FileUtil fu = new FileUtil(args[0], args[1]);
        System.out.println(fu.copyFile()? "檔案拷貝成功!" : "檔案拷貝失敗!");
        long end = System.currentTimeMillis();
        System.out.println("拷貝檔案用時:" + (end - start));
    }
}
class FileUtil{
    private File srcFile;
    private File desFile;
    public FileUtil(File srcFile,File desFile) {
        this.srcFile = srcFile;
        this.desFile = desFile;
    }
    public FileUtil(String src,String des) {
        this(new File(src),new File(des));
    }
    public boolean copyFile() throws IOException {
        if(!this.srcFile.exists()) {
            return false;
        }
        if(!this.desFile.getParentFile().exists()) {
            this.desFile.getParentFile().mkdirs();
        }
        InputStream input = null;
        OutputStream output = null;
        int len = 0;
        try {
            input = new FileInputStream(this.srcFile);
            output = new FileOutputStream(this.desFile);
            byte [] data = new byte[1024];
            while((len = input.read(data)) != -1) {
                output.write(data);
            }
            return true;
        }catch(Exception e) {
            throw e;
        }finally {
            if(input != null) {
                input.close();
            }
            if(output != null) {
                output.close();
            }
        }
    }
}