java文件複製

import java.io.File;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;
public class TestDemo{

  /*  設置初始化參數:java d:\my.jpg d:\mldn.jpg
    初始化參數是main()函數中的參數,在這裏的兩個參數就是要執行的兩個地址,中間用空格隔開
    在控制檯命令輸入執行程序的時候輸入的命令是:java TestDemo d:\my.jpg d:\mldn.jpg
    當然也可以字eclipse中設置初始化參數
    */



    public static void main(String[] args) throws Exception{
        long start=System.currentTimeMillis();//取得複製開始的時間

        //判斷初始化參數的個數,應該爲兩個,源文件和輸出文件
        if (args.length!=2) {
            System.out.println("命令執行錯誤!");
            System.exit(1);//程序退出執行。
        }

        //如果輸入參數正確,應該進行源文件有效性的驗證
        File inFile=new File(args[0]);//第一個路徑爲源文件
        if (!inFile.exists()) {
            System.out.println("源文件不存在請確認執行路徑!");
            System.exit(1);

        }

        //如果此時源文件正確,就需要定義輸出文件,同時要考慮到輸出文件有目錄
        File outFile=new File(args[1]);
        if(!outFile.getParentFile().exists()){
            outFile.getParentFile().mkdirs();//創建目錄
        }

        //實現文件內容的複製,分別定義輸出流與輸入流對象
        InputStream input=new FileInputStream(inFile);
        OutputStream output=new FileOutputStream(outFile);

        int temp=0;//保存每次讀取數據的長度
        //每次讀取1024個字節,最大2048個字節,在實際開發中需要並行訪問,不能太大
        byte data[]=new byte[1024];

        //將每次讀取進來的數據保存在字節數組裏面,並且返回讀取的個數
        while((temp=input.read(data))!=-1){//循環讀取數據
            output.write(data,0,temp);//輸出數組
        }

        input.close();
        output.close();
        long end=System.currentTimeMillis();//取得結束操作時間
        System.out.println("複製所花費的時間:"+(end-start));//計算操作完成的時間
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章