如何在 Java 中将一个文件复制到另一个文件

原文:https://www.studytonight.com/java-examples/how-to-copy-a-file-to-another-file-in-java

在这篇文章中,我们将学习如何将文件数据复制到另一个文件中。这是我们在处理文件和输入/输出操作时面临的一个普遍问题。

有几种方法可以复制数据,例如使用FileInputStreamFileOutputStreamFiles类。所有这些类都用于文件处理操作。

但是Files类更容易使用,因为它提供了copy()方法,可以将源文件即时复制到目标文件,而在FileInputStream则没有复制方法。因此,我们需要先读取数据,然后将它们写入目标文件。

这里,我们有一些示例来说明对文件的复制操作。下面我们有一个文件 outfile.txt 包含一些数据,将被写入到 abc.txt 空文件中。

//文件:outfile.txt

Welcome to Studytonight.com
It is technical portal.

举个例子

让我们创建一个将一个文件复制到另一个文件的示例。这里,我们使用的是将源复制到目的地的Files类的copy()方法。

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths; 
public class Main {

    public static void main(String[] args) throws IOException{  
        Path path = Paths.get("outfile.txt");
        OutputStream os = new FileOutputStream("abc.txt");
        Files.copy(path,os);
    }
}

另一个例子的时间:

我们再举一个例子,将一个文件复制到另一个文件。这里,我们使用FileInputStreamFileOutputStream来读写数据。通过使用FileInputStream类的read()方法,我们从源文件中读取数据,并使用文件输出流的write()方法写入数据。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Main {

    public static void main(String[] args) throws IOException{  
        File source = new File("outfile.txt");
        File dest   = new File("abc.txt");

        try{
            FileInputStream fis = new FileInputStream(source);

            FileOutputStream fos = new FileOutputStream(dest); 

            byte[] buffer = new byte[1024];
            int length;

            while ((length = fis.read(buffer)) > 0) {

                fos.write(buffer, 0, length);
            }
        }catch(Exception e) {
            System.out.println(e);
        }
    }
}

成功执行上述代码后。您可以看到 abc.txt 文件将具有与 outfile.txt 中相同的数据。这意味着数据复制成功。