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 流類和方法的實際實現。