Java中複製檔案的幾種方法


Java 提供了多種複製檔案的方法,包括使用‘File’、‘FileInputStream’ 和 ‘FileOutputStream’ 類。有時我們需要備份檔案、壓縮檔案或與他人共享檔案。在這些情況下,複製檔案就變得必要了。我們將探討幫助我們透過 Java 程式將一個檔案的內容複製到另一個檔案的方法和類。

在直接跳轉到示例程式之前,讓我們討論一些我們將要使用的類和內建方法。這將為理解程式碼奠定基礎。請注意,這些類和方法也與一些異常相關,因此,必須定義一個 catch 塊來處理這些異常。

I/O 流

流是在 Java 中執行輸入和輸出操作時使用的抽象。基本上,輸入流用於從鍵盤、磁碟檔案等來源獲取輸入。輸出流是指資料顯示或寫入的目標。

File 類

此類以字串的形式表示檔案和目錄的路徑。我們將路徑作為引數傳遞給其對應的建構函式。

語法

File nameOfObject = new File("filePath");

FileInputStream 類

它用於讀取檔案內容。對於此操作,我們需要建立一個 ‘File’ 類的例項,並將其作為引數傳遞給 FileInputStream 的建構函式。它將儲存原始檔的路徑。

語法

FileInputStream nameOfObject = new FileInputStream(objectOfsourceFile);

FileOutputStream 類

它用於將檔案內容寫入指定的檔案。對於此操作,我們需要建立一個 ‘File’ 類的例項,並將其作為引數傳遞給 FileOutputStream 的建構函式。它將儲存目標檔案的路徑。

語法

FileOutputStream nameOfObject = new FileOutputStream(objectOfdestinationFile);

Files.copy()

它接受兩個用逗號分隔的引數,第一個引數指定原始檔,第二個引數指定目標檔案。目標檔案在複製操作之前必須不存在,它將由編譯器根據目標 ‘File’ 類的例項隱式建立。

語法

Files.copy(objectOfSourceFile.toPath(), objectOfDestinationFile.toPath());

Java 中複製檔案的方法

執行復制操作有兩種不同的方法。

使用 FileInputStream 和 FileOutputStream 複製檔案

讓我們快速瞭解一下這種方法。

方法

  • 定義兩個 ‘File’ 類的例項。一個用於原始檔路徑,另一個用於目標檔案路徑。

  • 現在,將這些路徑傳遞給 FileInputStream 和 FileOutputStream 建構函式。

  • 使用 while 迴圈讀取和寫入檔案內容。‘read()’ 方法將讀取原始檔包含的資訊,而 ‘write()’ 方法將內容寫入目標檔案。

示例

import java.io.*;
import java.util.*;
public class CopyFile1 {
   public static void main(String[] args) {
      try {
         // to read the path of files
         File flpath1 = new File("D:/Java Programs/file1.txt");
         File flpath2 = new File("D:/Java Programs/file2.txt");
         // passing file path to streams
         FileInputStream inptStrm = new FileInputStream(flpath1);
         FileOutputStream outStrm = new FileOutputStream(flpath2);
         int info = 0;
         // reading the given file1
         while( (info = inptStrm.read()) != -1) {
            outStrm.write(info); // writing to file2
         }
         System.out.print("File1 copied to the given file!!");
      }
      catch(Exception exp) { // for handling exception
         System.out.println("There is an error finding file");
      }
   }
}

輸出

File copied to the given file!!

使用 Files.copy() 方法複製檔案

讓我們快速瞭解一下這種方法。

方法

  • 定義兩個 ‘File’ 類的例項。一個用於原始檔路徑,另一個用於目標檔案路徑。

  • 現在,使用內建方法 ‘Files.copy()’ 方法執行復制操作。

示例

import java.io.*;
import java.nio.file.*;
public class CopyFile2 {
   public static void main(String[] args) {
      try {
         // to read the path of files
         File flpath1 = new File("D:/Java Programs/File1.txt");
         File flpath2 = new File("D:/Java Programs/File2.txt");
         // copying the file1 to file2
         Files.copy(flpath1.toPath(), flpath2.toPath());
         System.out.print("File1 copied to the given file!!");
      }
      catch(Exception exp) { // for handling exception
         System.out.println("There is an error copying the file");
      }
   }
}   

輸出

File1 copied to the given file!!

結論

在本文中,我們瞭解了在 Java 中複製檔案的幾種方法。每種方法都非常簡單直接,但是,最佳方法將取決於專案特定需求。我們還透過示例程式瞭解了 I/O 流類和方法的實際實現。

更新於:2023年7月20日

1K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告