文件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);
    }

}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值