基于缓冲区的JavaIO文件复制工具类

这是一个使用Java进行文件复制的测试代码示例。通过FileReader和FileWriter类实现了从源文件到目标文件的内容拷贝,并在操作完成后关闭流。

测试代码

import IODemo_02.CopyFileUtils;
import org.junit.Test;
public class AppTest {
 
    @Test
    public void CopyFileTest(){
        CopyFileUtils.copyFile("F:/桌面/b.txt","F:/桌面/d.txt");
    }
}

工具类


import java.io.FileReader;
import java.io.FileWriter;

public class CopyFileUtils {
    public static void copyFile(String src,String des){
        FileReader frd = null;
        FileWriter fwt = null;
        try{
//            创建文件字符流输入对象
            frd = new FileReader(src);
//            创建文件字符流输出流对象
            fwt = new FileWriter(des);
            char[] buffer = new char[1024];
            int temp = 0;
            while ((temp = frd.read(buffer))!=-1){
                fwt.write(buffer,0,temp);
            }
            fwt.flush();
            System.out.println("true");
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try{
                if (frd != null)
                    frd.close();
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
}

package com.hexiang.utils; import java.io.*; /** * FileUtil. Simple file operation class. * * @author BeanSoft * */ public class FileUtil { /** * The buffer. */ protected static byte buf[] = new byte[1024]; /** * Read content from local file. FIXME How to judge UTF-8 and GBK, the * correct code should be: FileReader fr = new FileReader(new * InputStreamReader(fileName, "ENCODING")); Might let the user select the * encoding would be a better idea. While reading UTF-8 files, the content * is bad when saved out. * * @param fileName - * local file name to read * @return * @throws Exception */ public static String readFileAsString(String fileName) throws Exception { String content = new String(readFileBinary(fileName)); return content; } /** * 读取文件并返回为给定字符集的字符串. * @param fileName * @param encoding * @return * @throws Exception */ public static String readFileAsString(String fileName, String encoding) throws Exception { String content = new String(readFileBinary(fileName), encoding); return content; } /** * 读取文件并返回为给定字符集的字符串. * @param fileName * @param encoding * @return * @throws Exception */ public static String readFileAsString(InputStream in) throws Exception { String content = new String(readFileBinary(in)); return content; } /** * Read content from local file to binary byte array. * * @param fileName - * local file name to read * @return * @throws Exception */ public static byte[] readFileBinary(String fileName) throws Exception { FileInputStream fin = new FileInputStream(fileName); return readFileBinary(fin); } /** * 从输入流读取数据为二进制字节数组. * @param streamIn * @return * @throws IOException */ public static byte[] readFileBinary(InputStream streamIn) throws IOException { BufferedInputStream in = new BufferedInputStream(streamIn); ByteArrayOutputStream out = new ByteArrayOutputStream(10240); int len; while ((len
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值