广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java 实现文件复制及文件夹复制
  • 693
分享到

Java 实现文件复制及文件夹复制

java开发语言 2023-09-26 21:09:06 693人浏览 薄情痞子
摘要

在Java中,有多种方法可以实现文件的复制。以下是几种常用的方式: 使用字节流进行复制: 通过FileInputStream和FileOutputStream分别创建源文件和目标文件的输入输出流,然后通过循环读取源文件内容,并将数据写入目标

在Java中,有多种方法可以实现文件的复制。以下是几种常用的方式:

使用字节流进行复制:

通过FileInputStream和FileOutputStream分别创建源文件和目标文件的输入输出流,然后通过循环读取源文件内容,并将数据写入目标文件中进行复制。

可以使用字节数组作为缓冲区,提高复制效率。

需要手动处理流的打开、关闭和异常处理。

import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class ByteStreamCopyExample {    public static void main(String[] args) {        String sourceFilePath = "source.txt";        String destinationFilePath = "destination.txt";        try (FileInputStream fis = new FileInputStream(sourceFilePath);             FileOutputStream fos = new FileOutputStream(destinationFilePath)) {            byte[] buffer = new byte[1024];            int bytesRead;            while ((bytesRead = fis.read(buffer)) != -1) {                fos.write(buffer, 0, bytesRead);            }            System.out.println("文件复制成功!");        } catch (IOException e) {            e.printStackTrace();        }    }}

使用字符流进行复制:

通过FileReader和FileWriter分别创建源文件和目标文件的字符流,然后通过循环读取源文件内容,并将数据写入目标文件中进行复制。

可以使用字符数组作为缓冲区,提高复制效率。

需要手动处理流的打开、关闭和异常处理。

import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class CharacterStreamCopyExample {    public static void main(String[] args) {        String sourceFilePath = "source.txt";        String destinationFilePath = "destination.txt";        try (FileReader fr = new FileReader(sourceFilePath);             FileWriter fw = new FileWriter(destinationFilePath)) {            char[] buffer = new char[1024];            int charsRead;            while ((charsRead = fr.read(buffer)) != -1) {                fw.write(buffer, 0, charsRead);            }            System.out.println("文件复制成功!");        } catch (IOException e) {            e.printStackTrace();        }    }}

使用Files类的copy()方法:

在Java的NIO包中,提供了Files类的静态方法copy(),可以直接将一个文件复制到目标位置。

可以使用StandardCopyOption枚举类指定复制选项,例如REPLACE_EXISTING用于覆盖已存在的目标文件。

相对于字节流和字符流,使用Files.copy()方法更简洁方便。

import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class Text6 {    public static void main(String[] args) {        try (FileInputStream fis = new FileInputStream("user.txt");             FileOutputStream fos = new FileOutputStream("user1.txt")) {            fis.transferTo(fos);            System.out.println("文件复制成功!");        } catch (IOException e) {            e.printStackTrace();        }    }}

使用Files类的copy()方法结合通道进行复制:

使用FileChannel来处理源文件和目标文件的通道,通过调用源文件通道的transferTo()或transferFrom()方法,将数据从源文件传输到目标文件。

这种方式可以利用底层操作系统提供的文件复制机制,性能较高。

需要手动处理通道和流的打开、关闭和异常处理。

transferTo(OutputStream out) 此方法是java9 新方法,直接实现复制文件。

import java.io.IOException;import java.nio.channels.FileChannel;import java.nio.file.Path;import java.nio.file.StandardCopyOption;public class ChannelCopyExample {    public static void main(String[] args) {        Path sourceFilePath = Path.of("source.txt");        Path destinationFilePath = Path.of("destination.txt");        try (FileChannel sourceChannel = FileChannel.open(sourceFilePath);             FileChannel destinationChannel = FileChannel.open(destinationFilePath,                     StandardOpenOption.CREATE, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING)) {            destinationChannel.transferFrom(sourceChannel, 0, sourceChannel.size());            System.out.println("文件复制成功!");        } catch (IOException e) {            e.printStackTrace();        }    }}

使用第三方库:

Java中有一些第三方库可以简化文件复制操作,例如 Apache Commons IO 的FileUtils类提供了多个便捷的方法用于复制文件或目录。

import org.apache.commons.io.FileUtils;import java.io.File;import java.io.IOException;public class ApacheCommonsiocopyExample {    public static void main(String[] args) {        File sourceFile = new File("source.txt");        File destinationFile = new File("destination.txt");        try {            FileUtils.copyFile(sourceFile, destinationFile);            System.out.println("文件复制成功!");        } catch (IOException e) {            e.printStackTrace();        }    }}
目录(文件夹)复制
import java.io.File;import java.io.IOException;import java.nio.file.Files;import java.nio.file.StandardCopyOption;public class Text7 {    public static void main(String[] args) {        File sourceDir = new File("D:\\A---WEBdate");        File destinationDir = new File("D:\\A---webdate1");        try {            copyDirectory(sourceDir, destinationDir);            System.out.println("目录复制成功!");        } catch (IOException e) {            e.printStackTrace();        }    }//在copyDirectory()方法中,我们首先检查目标目录是否存在,如果不存在,则创建该目录。// 然后遍历源目录下的所有文件和子目录,根据文件类型调用copyDirectory()或copyFile()方法进行复制操作。// 对于子目录,递归调用copyDirectory()方法;对于文件,调用copyFile()方法。    public static void copyDirectory(File sourceDir, File destinationDir) throws IOException {        if (!destinationDir.exists()) {            destinationDir.mkdirs();        }        File[] files = sourceDir.listFiles();        if (files != null) {            for (File file : files) {                File destinationFile = new File(destinationDir, file.getName());                if (file.isDirectory()) {                    copyDirectory(file, destinationFile);                } else {                    copyFile(file, destinationFile);                }            }        }    }//在copyFile()方法中,我们使用Files.copy()方法将源文件的内容复制到目标文件中。    public static void copyFile(File sourceFile, File destinationFile) throws IOException {        Files.copy(sourceFile.toPath(), destinationFile.toPath(), StandardCopyOption.REPLACE_EXISTING);// 这里可以使用你前面提到的复制文件的方法,如 transferTo() 或者使用缓冲区的方式复制    }}

来源地址:https://blog.csdn.net/qq_57570052/article/details/131891213

--结束END--

本文标题: Java 实现文件复制及文件夹复制

本文链接: https://www.lsjlt.com/news/418952.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java 实现文件复制及文件夹复制
    在Java中,有多种方法可以实现文件的复制。以下是几种常用的方式: 使用字节流进行复制: 通过FileInputStream和FileOutputStream分别创建源文件和目标文件的输入输出流,然后通过循环读取源文件内容,并将数据写入目标...
    99+
    2023-09-26
    java 开发语言
  • Java的IO流实现文件和文件夹的复制
    本文实例为大家分享了Java的IO流实现文件和文件夹复制的具体代码,供大家参考,具体内容如下 1、使用文件流对单个文件进行复制 将某个文件复制到指定的路径下: //复制文件 publ...
    99+
    2022-11-13
  • java实现系统多级文件夹复制
    本文实例为大家分享了java实现系统多级文件夹复制的具体代码,供大家参考,具体内容如下 package com.jae; import java.io.*; //复制文件夹内...
    99+
    2022-11-12
  • vbs怎么实现复制文件夹
    这篇文章主要介绍“vbs怎么实现复制文件夹”,在日常操作中,相信很多人在vbs怎么实现复制文件夹问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vbs怎么实现复制文件夹”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-08
  • Nodejs 复制文件/文件夹的方法
    1.使用fs复制文件 使用fs对象的readFileSync,writeFileSync方法进行读写操作复制 cp.js function copyIt(from, to) { fs.writeFi...
    99+
    2022-06-04
    文件夹 文件 方法
  • Java实现文件或文件夹的复制到指定目录实例
    整理文档,搜刮出一个Java实现文件或文件夹的复制到指定目录的代码,稍微整理精简一下做下分享。import java.io.File; import java.io.FileInputStream; import java.io.FileO...
    99+
    2023-05-31
    java 文件 复制
  • python怎么复制文件夹
    python中复制文件夹的方法:1、在python脚本中导入os, shutil模块;2、使用copy函数进行文件夹复制操作即可。具体操作方法:首先需要在python脚本中导入os, shutil模块进行文件操作。import os, sh...
    99+
    2022-10-16
  • Shell脚本实现从文件夹中递归复制文件
    需求 前两天碰到需要在十层左右的文件夹中提取文件的需求,于是写了此脚本。 如下面这样的文件结构: dir1 ├── a │ ├── b │ │ └── file1...
    99+
    2022-06-04
    递归 文件 脚本
  • Nodejs中怎么复制文件和文件夹
    Nodejs中怎么复制文件和文件夹,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.使用fs复制文件使用fs对象的readFileSync...
    99+
    2022-10-19
  • linux如何复制文件夹到另一个文件夹
    本文小编为大家详细介绍“linux如何复制文件夹到另一个文件夹”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux如何复制文件夹到另一个文件夹”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起...
    99+
    2023-01-05
    linux
  • python 复制文件实现
    使用python实现对文件夹的复制操作file类中没有提供专门的文件复制函数,因此只能通过使用文件的读写函数来实现文件的复制。这里仅仅给出范例:...
    99+
    2023-06-02
  • linux能不能复制文件夹
    这篇“linux能不能复制文件夹”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux能不能复制文件夹”文章吧。linux...
    99+
    2023-06-30
  • 将文件移动或复制到子文件夹
    在Windows XP系统配备的Windows资源管理器中,您可通过将文件图标拖放到另一文件夹内的操作实现文件的移动或复制。在您已将各文件夹显示于资源管理器左侧窗格的情况下,便可轻而易举地将所选文件拖放至目标文件夹。 如...
    99+
    2023-05-24
    文件移动 或复制 子文件夹 文件 文件夹 移动
  • Java多线程实现复制文件
    本文实例为大家分享了Java多线程实现复制文件的具体代码,供大家参考,具体内容如下 代码实现如下: package com.tulun.thread; import java.i...
    99+
    2022-11-13
  • Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
    实现代码一: var fs = require('fs') var path = require('path') var copyFile = function(srcPath, tarPath, ...
    99+
    2022-06-04
    递归 文件夹 文件
  • java怎么复制文件?
    java中复制文件的方法:(推荐:java视频教程)一、使用FileStreams复制这是最经典的方式将一个文件的内容复制到另一个文件中。 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B...
    99+
    2021-10-17
    java
  • java怎么实现文件复制功能
    Java可以通过使用FileInputStream和FileOutputStream来实现文件复制功能。例如,以下是一种实现文件复制...
    99+
    2023-08-11
    java
  • C#实现WPF项目复制和移动文件夹
    使用WPF做的一个简单的操作文件的demo,包括复制和移动文件夹,核心思想就是使用递归,如果只是移动或者复制单一文件,直接使用File.Copy()或者File.Move()方法即可...
    99+
    2022-11-13
  • Linux系统如何复制文件及文件夹到远程服务器
    Linux系统如何复制文件及文件夹到远程服务器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。从一个服务器复制文件到另一个服务器,或者从本地到远程复制是 Linux&n...
    99+
    2023-06-05
  • Shell中怎么从文件夹中递归复制文件
    本篇文章为大家展示了Shell中怎么从文件夹中递归复制文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下:    dir1    ...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作