[JAVA]使用字节流拷贝文件

Posted zhengxl5566

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[JAVA]使用字节流拷贝文件相关的知识,希望对你有一定的参考价值。

import java.io.*;

/**
 * @Description:
 * @projectName:JavaTest
 * @see:PACKAGE_NAME
 * @author:郑晓龙
 * @createTime:2019/5/3 0:45
 * @version:1.0
 */
public class CopyWithBytes {
    public static void main(String[] args) {
        byte[] bytes = readFileToByteArray("d:/abc.txt");
        writeByteArrayToFile(bytes,"d:/23123.txt");
    }

    public static byte[] readFileToByteArray(String src) {
        // 文件输入流(需要关闭)
        InputStream is = null;
        try {
            is = new FileInputStream(new File(src));
            // 字节数组输出流(不需要关闭)
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            byte[] buf = new byte[1024 * 1];
            int len;
            while ((len = is.read(buf)) != -1) {
                baos.write(buf, 0, len);
            }
            baos.flush();
            return baos.toByteArray();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (is != null) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return null;
    }

    public static void writeByteArrayToFile(byte[] datas, String destFileName) {
        // 文件输出流(需要关闭)
        OutputStream os = null;
        try {
            // 字节数组输入流(不需要关闭)
            InputStream is = new ByteArrayInputStream(datas);
            os = new FileOutputStream(new File(destFileName));

            byte[] buf = new byte[1024];
            int len;
            while (((len = is.read(buf)) != -1)) {
                os.write(buf, 0, len);
            }
            os.flush();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (os != null){
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

 

以上是关于[JAVA]使用字节流拷贝文件的主要内容,如果未能解决你的问题,请参考以下文章

[JAVA]字节流拷贝文件

java 字符流 字节流

java IO流文件拷贝文件(字节流标准写法)

Java学习笔记6.1.3 字节流 - 字节流缓冲区与缓冲字节流

Java学习笔记6.1.3 字节流 - 字节流缓冲区与缓冲字节流

IO拷贝代码