Java按字节读写二进制文件

在项目中处理文件读写时,遇到需求要将二进制文件转换为JSON并发送到ActiveMQ。通过Java按字节读取文件,转化为Base64编码的字符串,然后在接收端解码回原始字节数组,成功解决了文件内容不变形的问题。
摘要由CSDN通过智能技术生成

java 按字节读写二进制文件(Base64编码解码)

最近在做项目时遇到这样一个需求:依次读取本地文件夹里所有文件的内容,转为JSON,发送到ActiveMQ的消息队列, 然后从MQ的消息队列上获取文件的信息,依次写到本地。常见的文件类型,比如.txt 和.png等文件的读写并不难。但是,我刚才所提到的需求,如果用常规的方法去读写,比如按字节读取文件内容,转为字符串,再转为JSON发送到MQ的队列,然后从MQ获取原文件信息写到文件,就会发现写出来的文件和文件不一样。我的解决方法是:按字节读取原文件,转为字节数组,将字节数组转为Base64编码格式的字符串,然后转为JOSN发送到MQ,然后从MQ获取到JOSN,将文件内容通过Base64解码为字符数组,写文件到某个路径。以下为代码:

测试类 Test.class


/**
 * @Desc: 测试类
 * @Date: 2016/7/1
 * @Version: 1.0
 * @Author: lzy
 */
public class Test {
   
    public static void main(String[] args){

        String fileName="JUBE99EGRR311800";           //文件名:测试文件是没有后缀名的二进制
        String fileReadPath="d:/read/";               //文件所在文件夹
        String filePath=fileReadPath+fileName;        //文件路径

        //工具类
        FileUtil fileUtil=new FileUtil();

        //按字节读取文件内容,并转换为Base64编码字符串
        String fileJsonStr=fileUtil.fileToJson(fileName,filePath);

        //文件内容Base64解码,按字节写文件
        fileUtil.writeFile(fileJsonStr,"d:/write/");
    }
}

FileUtil.class 文件转换工具类

/**
 * @Desc: 文件内容转换工具类
 * @Date: 2016/7/1
 * @Version: 1.0
 * @Author: lzy
 */

public class FileUtil {
   

    /**
     * 文件内容转为 Base64 编码的 JSON
     * @param<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值