`

java文件复制方法参考

    博客分类:
  • J2SE
 
阅读更多

最快的文件复制方法

    private static void nioTransferCopy(File source, File target) {
        FileChannel in = null;
        FileChannel out = null;
        FileInputStream inStream = null;
        FileOutputStream outStream = null;
        try {
            inStream = new FileInputStream(source);
            outStream = new FileOutputStream(target);
            in = inStream.getChannel();
            out = outStream.getChannel();
            in.transferTo(0, in.size(), out);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            close(inStream);
            close(in);
            close(outStream);
            close(out);
        }
    }

 如果需要监测复制进度,可以用以下的方法(留意buffer的大小,对速度有很大影响):

    private static void nioBufferCopy(File source, File target) {
        FileChannel in = null;
        FileChannel out = null;
        FileInputStream inStream = null;
        FileOutputStream outStream = null;
        try {
            inStream = new FileInputStream(source);
            outStream = new FileOutputStream(target);
            in = inStream.getChannel();
            out = outStream.getChannel();
            ByteBuffer buffer = ByteBuffer.allocate(4096);
            while (in.read(buffer) != -1) {
                buffer.flip();
                out.write(buffer);
                buffer.clear();
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            close(inStream);
            close(in);
            close(outStream);
            close(out);
        }
    }

 常用的方法1是:

    private static void customBufferBufferedStreamCopy(File source, File target) {
        InputStream fis = null;
        OutputStream fos = null;
        try {
            fis = new BufferedInputStream(new FileInputStream(source));
            fos = new BufferedOutputStream(new FileOutputStream(target));
            byte[] buf = new byte[4096];
            int i;
            while ((i = fis.read(buf)) != -1) {
                fos.write(buf, 0, i);
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        } finally {
            close(fis);
            close(fos);
        }
    }

 常用的方法2是:

    private static void customBufferStreamCopy(File source, File target) {
        InputStream fis = null;
        OutputStream fos = null;
        try {
            fis = new FileInputStream(source);
            fos = new FileOutputStream(target);
            byte[] buf = new byte[4096];
            int i;
            while ((i = fis.read(buf)) != -1) {
                fos.write(buf, 0, i);
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        } finally {
            close(fis);
            close(fos);
        }
    }

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Java程序_复制文件.jar

    在这个程序中,可能还使用了`java.nio.file`包中的类,如`Files.copy()`方法,该方法提供了更简洁的文件复制功能,支持异步操作和更高级的选项,如复制属性。 其次,Swing是Java的GUI库,用于构建桌面应用程序。在...

    JAVA作业文件复制

    文件复制,具体都是递归一下,没什么难点,大家参考参考。。。。。。。。。。。

    文件复制、显示及修改java代码

    Java提供了`java.nio.file`包,其中的`Files`类提供了便捷的文件复制方法。下面是如何使用`copy`方法复制文件的示例: ```java import java.io.IOException; import java.nio.file.Files; import java.nio.file....

    Java IO文件操作类与复制文件实例.rar

    Java IO文件操作类与复制文件实例,有关文本编辑、FileWriter文件写入、FileReade文件读娶DataStream文件数据流、BufferedReader文件暂存器、FileViewer文件浏览器、复制文件Copy等方面的操作要领,仅供学习参考。

    JavaIO文件复制优化-JavaIO优化详解(下载可用)

    JavaIO文件复制优化——JavaIO优化详解(下载可用)。个人经导师指导并认可通过的98分大作业设计项目,适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为“参考资料”使用。...

    java文件流学习实验

    这个"java文件流学习实验"显然是一系列用Java编写的实验,目的是深入理解和掌握文件流的概念和应用。实验中的代码文件(Test11.java、Test12.java等)很可能包含了不同类型的文件流操作示例,如读取、写入、复制和...

    java代码-使用java解决Io文件复制的源代码

    java代码-使用java解决Io文件复制的源代码 ——学习参考资料:仅用于个人学习使用!

    java代码-使用java解决文件操作--复制文件的问题的源代码

    java代码-使用java解决文件操作--复制文件的问题的源代码 ——学习参考资料:仅用于个人学习使用!

    Java复制文件

    摘要:Java源码,文件操作,复制文件 Java复制文件,使用Java语言编写拷贝文件的演示小程序,附源代码,注释挺全的,通过本源码你可以学习一下Java对文件的事件处理、取得目录内容的事件处理、如何弹出文件选择器,并...

    java源码包---java 源码 大量 实例

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    .class文件反编译成java文件工具

    `.class`文件反编译工具通常采用逆向工程的方法,解析.class文件的字节码结构,并尝试将其翻译成接近原始的Java源代码。这样的工具能够帮助开发者分析库、框架或者无法获得源代码的程序,从而增进理解和学习。尽管反...

    poi复制指定行数的Excel表格内容

    5. **保存新文件**:创建新的`Workbook`对象,将复制后的`Sheet`添加到其中,然后使用`Workbook`的`write()`方法将其写入新的Excel文件。 描述中提到的"jar包也是齐全的",意味着提供者可能已经包含了所有必要的...

    Java核心技术 PDF(文字版 有目录 可以复制粘贴文字)

    Java核心技术是Java编程领域的一本经典著作,涵盖了Java语言的基础以及高级特性,是广大Java开发者必备的参考书籍。本PDF版本为《Java核心技术 卷1》,主要关注Java的基础知识,适合初学者和有一定经验的开发者深入...

    java对大数据HDFS文件操作

    Java作为广泛使用的编程语言,提供了丰富的API来操作HDFS,使得开发者能够方便地进行文件的读取、写入、复制、移动等操作。本文将详细讲解如何使用Java对HDFS进行文件操作,并介绍两个相关的项目示例。 首先,Java...

    Java文件操作大全.rar_文件操作

    Java文件操作是编程中不可或缺的一部分,尤其是在开发桌面应用、服务器端程序或进行自动化任务时。这个压缩包"Java文件操作大全.rar"显然是一份针对初学者的教程,旨在教授如何在Java环境中创建、检查、修改和删除...

    Java编程中多种IO API复制文件的性能分析.pdf

    Java中的IO API还提供了多种不同的文件复制方式,例如,可以使用流式IO来实现文件复制,也可以使用NIO来实现文件复制。NIO是Java中的新式IO操作方式,提供了更高的性能和更好的灵活性。 在实际应用中,选择合适的...

    Java从压缩包中提取文件.rar

    总的来说,"Java从压缩包中提取文件.rar"这个资源为Java开发者提供了一个学习和参考的实例,涵盖了Swing GUI的创建以及使用Java处理压缩文件的方法,特别是从RAR文件中提取内容。无论是初学者还是有经验的开发者,都...

    java源码包3

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

Global site tag (gtag.js) - Google Analytics