`

文件copy工具类的简单实现

阅读更多

这个工具类是我模仿Spring的工具类实现的,从模仿spring的编程风格开始塑造自己的编程风格。

package com.amuse.utils;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 类FileCopyUtil.java的实现描述:FileCopyUtil.java
 * @author yongchun.chengyc 2012-3-7 下午6:37:05
 */
public class FileCopyUtil {

    /** 字节缓冲数组的大小 */
    private static final int BUFFER_SIZE = 4096;


    /**
     * 将 File in 的内容复制到 File out 中
     * 
     * @param in 源文件
     * @param out 目标文件
     * @return the number of bytes copied
     * @throws IOException 如果 I/O errors
     */
    public static int copy(File in, File out) throws IOException {
        if ((in == null) || (out == null)) {
            throw new IOException("No input File specified or No output File specified");
        }

        return copy(new BufferedInputStream(new FileInputStream(in)),
                    new BufferedOutputStream(new FileOutputStream(out)));
    }

    /**
     * @param in 源stream
     * @param out 目标stream
     * @return the number of bytes copied
     * @throws IOException 如果 I/O errors
     */
    private static int copy(BufferedInputStream in, BufferedOutputStream out) throws IOException {
        if ((in == null) || (out == null)) {
            throw new IOException("No InputStream specified or No OutputStream specified");
        }
        int byteCount = 0;
        byte[] buffer = new byte[BUFFER_SIZE];
        int bytesRead = -1;
        if ((bytesRead = in.read(buffer)) != -1) {
            out.write(buffer, 0, bytesRead);
            byteCount += bytesRead;
        }
        out.flush();
        return byteCount;
    }

    public static void main(String[] args) throws IOException {
        File in = new File("/home/drew/桌面/test");
        File out = new File("/home/drew/桌面/test1");
        FileCopyUtil.copy(in, out);
    }

}
 
分享到:
评论

相关推荐

    java File文件处理工具类

    Java中的`File`类是Java I/O流体系中不可或缺的一部分,它是用来操作...结合`FileUtils`这样的辅助工具类,我们可以编写出更简洁、易维护的代码。在实际开发中,还应考虑异常处理和错误恢复策略,以确保程序的健壮性。

    C#实现的简单文件备份工具

    本项目是一个用C#实现的简单文件备份工具,旨在提供一种便捷的方式对用户指定的源路径文件进行备份。以下是对该工具的功能、实现原理及C#编程相关知识点的详细解释。 1. 文件备份功能: - 非压缩备份:工具直接...

    标准字节流拷贝纯文本文件工具类

    这个名为"标准字节流拷贝纯文本文件工具类"的代码库可能包含了一些辅助方法,旨在简化使用这些类来复制纯文本文件的过程。在不同的JDK版本中,字节流的拷贝方法可能存在一些差异。 在JDK1.6及其之前的版本中,字节...

    Delphi 实现copy文件

    在 Delphi 编程环境中,实现文件复制是常见的任务,特别是在开发系统工具、备份功能或者进行数据迁移的应用中。Delphi 提供了多种方法来实现文件的复制,这里我们将深入探讨其中的一些关键知识点。 首先,Delphi ...

    28个java常用的工具类

    以上只是对一些常见Java工具类的概述,实际的"28个Java常用的工具类"压缩包可能包含这些类的实现或其他自定义功能。这些工具类极大地简化了开发过程,提高了代码的可读性和可维护性。在Java开发中,熟练掌握并合理...

    hutool一个Java基础工具类

    Hutool提供了FileUtil工具类,支持文件的创建、删除、复制、移动等基本操作,还包含了文件的读写、查找、遍历等功能。例如,你可以轻松实现文件的复制: ```java FileUtil.copy(new File("源文件路径"), new File(...

    Java poi复制execl的sheet页,跨文件操作,数据和样式全部复制,工具类

    接下来,我们将创建一个工具类来实现Sheet的复制功能。以下是一个简单的示例: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io....

    拷贝文件及文件夹(封装工具类)

    以下是一个基础的文件拷贝工具类的实现: ```java import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.nio.channels.FileChannel; ...

    C#实现的简单文件备份工具(源码)

    在本项目中,我们讨论的是一个使用C#编程语言实现的简单文件备份工具。这个工具的主要功能是为用户提供一种便捷的方式,将指定源路径下的文件复制到目标路径,以实现文件备份。它提供了两种备份模式:非压缩和压缩,...

    java工具类

    2. **`java.util.Collections`**:它是针对集合框架的工具类,提供了对List、Set、Map等各种集合的操作,如排序(`sort()`)、填充(`fill()`)和集合转换(`copy()`)等。 3. **`java.lang.Math`**:提供了各种...

    Qt实现文件拷贝

    在本文中,我们将深入探讨如何使用Qt框架在C++中实现多线程文件拷贝功能。Qt是一个跨平台的应用程序开发框架,它提供了丰富的API...总的来说,Qt提供的强大工具使得在C++中实现高效、稳定的文件拷贝功能变得非常便捷。

    文件复制(大文件快速复制工具)

    "文件复制(大文件快速复制工具)"这个主题聚焦于提高大文件复制的速度和效率,而FastCopy工具就是这样一个专为此目的设计的应用程序。下面将详细阐述大文件复制的挑战、FastCopy的特点以及如何使用它来提升复制性能...

    基于QT+Linux/Windows的简易文件管理器

    本项目是一个基于QT框架实现的简易文件管理器,它可以运行在Linux和Windows操作系统上,提供了基本的文件和文件夹操作功能,如创建、删除、复制和粘贴。 **QT框架详解** QT是一个流行的开源C++图形用户界面应用...

    winform实现FTP上传、下载、删除文件

    通过集成FTP功能到WinForm应用,我们可以构建一个简易的文件管理工具。 首先,我们需要引入必要的库来处理FTP操作。在C#中,最常用的是`System.Net.FtpClient`或第三方库如`FluentFTP`。对于本示例,我们假设使用的...

    批量拷贝工具(BatchCopy)

    总的来说,批量拷贝工具(BatchCopy)是提高工作效率的有效工具,通过Delphi编程我们可以实现一个功能完备、易用性强的文件批量拷贝程序。掌握批量拷贝的原理和实现方式,对于IT从业者来说,不仅能提升工作效率,还能...

    AutoCopy2U批量U盘USB存储设备复制备份工具 v1.2.433.102.zip

    AutoCopy2U自动批量USB存储设备拷贝/备份工具软件是一款批量全自动的USB存储设备拷贝/备份工具,可以实现将电脑中或者其他存储设备中的 指定的文件数据,全自动原样的拷贝/备份到新插入的USB移动存储设备中。...

    FastCopy171

    特别地,它对于XML文件的复制有良好的兼容性,XML文件由于其结构复杂,有时在复制过程中容易出现问题,但FastCopy能够有效避免这类问题。 标签“FastCopy”明确了我们要讨论的是这个软件本身。FastCopy以其高效和...

    \储存卡快速拷贝工具(FastCopy V2.08)

    FastCopy V2.08作为一款高效、便捷的文件拷贝工具,因其卓越的性能和易用性,受到了广大用户的喜爱。本文将深入探讨FastCopy的功能特性、操作流程以及它在实际应用中的优势。 FastCopy,顾名思义,其核心功能就是...

    文件拷贝工具源码,用效率最高的算法(0分)

    本主题聚焦于一个名为"CopyFileUtility"的源码,这是一个专门用于提高文件复制效率的工具类。源码的提供有助于我们深入理解高效的文件拷贝算法,以及如何在Java编程语言中实现这样的功能。 首先,我们要明白文件...

    java实现cos上传与下载

    Java实现COS(Cloud Object Storage)上传与下载是云计算服务中的常见操作,主要涉及对象存储的概念、Java SDK的使用以及文件I/O操作。COS通常由云服务提供商提供,用于存储大量的非结构化数据,如图片、视频、文档...

Global site tag (gtag.js) - Google Analytics