java 字节数组输入流(ByteArrayInputStream)、字节数组输出流(ByteArrayOutputStream)

本文介绍了如何使用Java的ByteArrayInputStream和ByteArrayOutputStream进行文件的二进制读取和写入,展示了将文件转换为字节数组以及字节数组写回文件的过程。
摘要由CSDN通过智能技术生成
字节数组输入流-ByteArrayInputStream
import java.io.*;

public class FileArrayInputAndOutput {


    /**
     * 将文件转二进制,ByteArrayInputStream字节数组输入流
     * 文件可以是word、txt、excel、pdf
     */
    public static void main(String[] args) {
        //得到文件的二进制,可替换为具体的文件二进制
        byte[] fileArray = fileArray();
        //此文件路径不能和fileArray()方法中的路径一致
        String filePath = "E:\\file\\将进酒222.doc";
        if (fileArray != null){
            try (ByteArrayInputStream is = new ByteArrayInputStream(fileArray);
                 FileOutputStream  os = new FileOutputStream(filePath)){
                int len ;
                byte[] bytes = new byte[1024];
                while ((len = is.read(bytes)) != -1) {
                    os.write(bytes, 0, len);
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }

    /**
     * 得到文件的二进制
     * 因为是在main方法中引用的此方法,所以要加static,具体情况具体分析
     * @return
     */
    public static byte[] fileArray(){
        //文件存放位置
        String filePath = "E:\\file\\将进酒.doc";
        File file = new File(filePath);
        byte[] fileArray = null;
        try (FileInputStream fis = new FileInputStream(file);
             ByteArrayOutputStream baos = new ByteArrayOutputStream()){
            byte[] bytes = new byte[1024];
            int read;
            while ((read = fis.read(bytes)) != -1) {
                baos.write(bytes, 0, read);
            }
            //得到的文件二进制
            fileArray = baos.toByteArray();

        } catch (Exception e) {
            e.printStackTrace();
        }
        return fileArray;
    }
字节数组输出流--ByteArrayOutputStream
import java.io.*;
import java.util.Arrays;

public class FileArrayInputAndOutput {

    /**
     * 将文件转二进制,ByteArrayOutputStream 字节数组输出流
     * 文件可以是word、txt、excel、pdf
     */
    public static void main(String[] args) {
        //文件存放位置,该位置下存在此文件
        String filePath = "E:\\file\\将进酒.doc";
        File file = new File(filePath);
        //存放二进制
        byte[] fileArray;
        try (FileInputStream fis = new FileInputStream(file);
             ByteArrayOutputStream baos = new ByteArrayOutputStream()){
            byte[] bytes = new byte[1024];
            int read;
            while ((read = fis.read(bytes)) != -1) {
                baos.write(bytes, 0, read);
            }
            //得到的文件二进制
            fileArray = baos.toByteArray();
            System.out.println(Arrays.toString(fileArray));
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值