Java 复制文件的不同方法

Java 复制文件的不同方法

Java提供了不同的方法来复制文件,包括’File’,’FileInputStream’和’FileOutputStream’类。有时我们需要备份文件、压缩文件或与他人分享文件。在这些情况下,复制文件变得必要。我们将探索能够通过Java程序将一个文件的内容复制到另一个文件的方法和类。

在直接跳转到示例程序之前,让我们讨论一些我们将使用的类和内置方法。这将为理解代码打下基础。请注意,这些类和方法也与一些异常关联,因此需要定义一个catch块来处理这些异常。

输入/输出流

流是在进行Java的输入和输出操作时使用的抽象。基本上,输入流用于从键盘、磁盘文件等来源获取输入。输出流指的是数据显示或写入的目标。

文件类

这个类表示文件和目录的路径,以字符串的形式传递路径作为参数给它的对应构造函数。

语法

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()方法复制文件

让我们快速浏览一下方法:

方法

  • 定义两个文件类实例。一个用于源文件路径,另一个用于目标文件路径

  • 使用内置方法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流类和方法的实际实现。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程