我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java怎么复制文件?

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java怎么复制文件?

java中复制文件的方法:(推荐:java视频教程)

一、使用FileStreams复制

这是最经典的方式将一个文件的内容复制到另一个文件中。 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B。 这是第一个方法的代码:

private static void copyFileUsingFileStreams(File source, File dest)
        throws IOException {    
    InputStream input = null;    
    OutputStream output = null;    
    try {
           input = new FileInputStream(source);
           output = new FileOutputStream(dest);        
           byte[] buf = new byte[1024];        
           int bytesRead;        
           while ((bytesRead = input.read(buf)) != -1) {
               output.write(buf, 0, bytesRead);
           }
    } finally {
        input.close();
        output.close();
    }
}

正如你所看到的我们执行几个读和写操作try的数据,所以这应该是一个低效率的,下一个方法我们将看到新的方式。

二、使用FileChannel复制

Java NIO包括transferFrom方法,根据文档应该比文件流复制的速度更快。 这是第二种方法的代码:

private static void copyFileUsingFileChannels(File source, File dest) throws IOException {    
        FileChannel inputChannel = null;    
        FileChannel outputChannel = null;    
    try {
        inputChannel = new FileInputStream(source).getChannel();
        outputChannel = new FileOutputStream(dest).getChannel();
        outputChannel.transferFrom(inputChannel, 0, inputChannel.size());
    } finally {
        inputChannel.close();
        outputChannel.close();
    }
}

三、使用Commons IO复制

Apache Commons IO提供拷贝文件方法在其FileUtils类,可用于复制一个文件到另一个地方。它非常方便使用Apache Commons FileUtils类时,您已经使用您的项目。基本上,这个类使用Java NIO FileChannel内部。 这是第三种方法的代码:

 private static void copyFileUsingApacheCommonsIO(File source, File dest)
         throws IOException {
     FileUtils.copyFile(source, dest);
 }

该方法的核心代码如下:

private static void doCopyFile(File class="lazy" data-srcFile, File destFile, boolean preserveFileDate) throws IOException {
        if (destFile.exists() && destFile.isDirectory()) {
            throw new IOException("Destination '" + destFile + "' exists but is a directory");
        }

        FileInputStream fis = null;
        FileOutputStream fos = null;
        FileChannel input = null;
        FileChannel output = null;
        try {
            fis = new FileInputStream(class="lazy" data-srcFile);
            fos = new FileOutputStream(destFile);
            input  = fis.getChannel();
            output = fos.getChannel();
            long size = input.size();
            long pos = 0;
            long count = 0;
            while (pos < size) {
                count = size - pos > FILE_COPY_BUFFER_SIZE ? FILE_COPY_BUFFER_SIZE : size - pos;
                pos += output.transferFrom(input, pos, count);
            }
        } finally {
            IOUtils.closeQuietly(output);
            IOUtils.closeQuietly(fos);
            IOUtils.closeQuietly(input);
            IOUtils.closeQuietly(fis);
        }

        if (class="lazy" data-srcFile.length() != destFile.length()) {
            throw new IOException("Failed to copy full contents from '" +
                    class="lazy" data-srcFile + "' to '" + destFile + "'");
        }
        if (preserveFileDate) {
            destFile.setLastModified(class="lazy" data-srcFile.lastModified());
        }
    }

由此可见,使用Apache Commons IO复制文件的原理就是上述第二种方法:使用FileChannel复制

四、使用Java7的Files类复制

如果你有一些经验在Java 7中你可能会知道,可以使用复制方法的Files类文件,从一个文件复制到另一个文件。 这是第四个方法的代码:

 private static void copyFileUsingJava7Files(File source, File dest)
         throws IOException {    
         Files.copy(source.toPath(), dest.toPath());
}

更多java知识请关注java基础教程栏目。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java怎么复制文件?

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

下载Word文档

猜你喜欢

java怎么复制文件?

java中复制文件的方法:(推荐:java视频教程)一、使用FileStreams复制这是最经典的方式将一个文件的内容复制到另一个文件中。 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B。 这是第一个方法的
java怎么复制文件?
2021-10-17

java怎么实现文件复制功能

Java可以通过使用FileInputStream和FileOutputStream来实现文件复制功能。例如,以下是一种实现文件复制的方法:```javaimport java.io.FileInputStream;import java.
2023-08-11

Java之怎么通过OutputStream写入文件与文件复制

这篇文章主要介绍了Java之怎么通过OutputStream写入文件与文件复制的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java之怎么通过OutputStream写入文件与文件复制文章都会有所收获,下面我们
2023-07-06

Java怎么从本地文件复制到网络文件上传

今天小编给大家分享一下Java怎么从本地文件复制到网络文件上传的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。文件复制文件复制
2023-07-06

怎么在Java中利用IO流复制文件

这期内容当中小编将会给大家带来有关怎么在Java中利用IO流复制文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3.
2023-06-14

Python中怎么复制文件

Python中怎么复制文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python复制文件import shutil import os import os.path
2023-06-17

PHP怎么删除复制文件

本篇内容主要讲解“PHP怎么删除复制文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP怎么删除复制文件”吧!PHP删除复制文件的实现方法是非常简单的,一般初学者通过简单的实践都能充分掌握这
2023-06-17

怎么在python中复制文件

本篇文章为大家展示了怎么在python中复制文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞
2023-06-14

python怎么复制粘贴文件

在Python中,可以使用shutil模块中的copy函数来复制文件,如下所示:```pythonimport shutilsrc = 'path/to/source/file.txt'dst = 'path/to/destination/
2023-08-30

linux怎么复制多个文件

要复制多个文件,可以使用`cp`命令结合通配符。以下是一些示例:1. 复制当前目录下的所有文件到目标目录:cp * /目标目录/2. 复制当前目录下的所有文本文件到目标目录:cp *.txt /目标目录/3. 复制当前目录下的所有文件和子目
linux怎么复制多个文件
2023-10-30

vb怎么复制文件到指定文件夹

在VB中,可以使用FileCopy函数来复制文件到指定文件夹。以下是一个示例代码:Dim sourceFile As StringDim destinationFolder As StringsourceFile = "C:\path\
vb怎么复制文件到指定文件夹
2024-03-15

mac怎么快速复制文件名

在Mac上快速复制文件名有几种方法:1. 使用快捷键复制文件名:选中要复制文件名的文件,按下Command键和C键同时按下,即可将文件名复制到剪贴板。2. 使用右键菜单复制文件名:选中要复制文件名的文件,点击鼠标右键,在弹出的菜单中选择“复
2023-09-28

java复制文件的4种方式

 1. 使用FileStreams复制  这是最经典的方式将一个文件的内容复制到另一个文件中。 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B。  这是第一个方法的代码:  privat
2023-06-03

vbs怎么实现复制文件夹

这篇文章主要介绍“vbs怎么实现复制文件夹”,在日常操作中,相信很多人在vbs怎么实现复制文件夹问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vbs怎么实现复制文件夹”的疑惑有所帮助!接下来,请跟着小编一起来
2023-06-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录