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 流类和方法的实际实现。