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+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告