前言 :
這裡的範例程式將會示範將某個檔案進行複製到另一個檔案. 透過函數:copyfile, 並傳入兩個參數 argu:srFile 與 argu:dtFile, 完成將第一個參數指定的檔案複製到第二個參數指定的檔案. 函數的呼叫如下 :
copyfile(String srFile, String dtFile);
再函數:copyfile(String srFile, String dtFile) 首先將傳入的兩個參數分別為其建立File 物件如下 :
File f1 = new File(srFile);
File f2 = new File(dtFile);
將著將其建立的 File 物件傳入建立的FileInputStream (來源檔案) 與 FileOutputStream (目的檔案), 準備進行檔案複製動作 :
InputStream in = new FileInputStream(f1);
OutputStream out = new FileOutputStream(f2);
為了增加複製的效率, 故採用了Buffer 來降低頻繁的IO動作, 參考如下 :
// For creating a byte type buffer
byte[] buf = new byte[1024];
// For writing to another specified file from buffer buf
out.write(buf, 0, len);
範例代碼 :
* CopyFile 類別代碼 :
這裡的範例程式將會示範將某個檔案進行複製到另一個檔案. 透過函數:copyfile, 並傳入兩個參數 argu:srFile 與 argu:dtFile, 完成將第一個參數指定的檔案複製到第二個參數指定的檔案. 函數的呼叫如下 :
copyfile(String srFile, String dtFile);
再函數:copyfile(String srFile, String dtFile) 首先將傳入的兩個參數分別為其建立File 物件如下 :
File f1 = new File(srFile);
File f2 = new File(dtFile);
將著將其建立的 File 物件傳入建立的FileInputStream (來源檔案) 與 FileOutputStream (目的檔案), 準備進行檔案複製動作 :
InputStream in = new FileInputStream(f1);
OutputStream out = new FileOutputStream(f2);
為了增加複製的效率, 故採用了Buffer 來降低頻繁的IO動作, 參考如下 :
// For creating a byte type buffer
byte[] buf = new byte[1024];
// For writing to another specified file from buffer buf
out.write(buf, 0, len);
範例代碼 :
* CopyFile 類別代碼 :
import java.io.*; public class CopyFile{ private static void copyfile(String srFile, String dtFile){ try{ File f1 = new File(srFile); File f2 = new File(dtFile); InputStream in = new FileInputStream(f1); //For Append the file. // OutputStream out = new FileOutputStream(f2,true); //For Overwrite the file. OutputStream out = new FileOutputStream(f2); byte[] buf = new byte[1024]; int len; while ((len = in.read(buf)) > 0){ out.write(buf, 0, len); } in.close(); out.close(); System.out.println("File copied."); } catch(FileNotFoundException ex){ System.out.println(ex.getMessage() + " in the specified directory."); System.exit(0); } catch(IOException e){ System.out.println(e.getMessage()); } } public static void main(String[] args){ switch(args.length){ case 0: System.out.println("File has not mentioned."); System.exit(0); case 1: System.out.println("Destination file has not mentioned."); System.exit(0); case 2: copyfile(args[0],args[1]); System.exit(0); default : System.out.println("Multiple files are not allow."); System.exit(0); } } }
沒有留言:
張貼留言