Java InputStream、字节数组byte[]与Base64字符串相互转换工具类

本文主要介绍Java中, 将输入流InputStream或byte[]字节数据与Base64字符串相互转换的工具类。
package com.cjavapy.utils.util;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

import java.io.*;

public class Base64Convert {

    private void Base64Convert() {

    }

    /**
     * 流转换为字符串
     *
     * @param in
     * @return
     * @throws IOException
     */
    public static String ioToBase64(InputStream in) throws IOException {
        String strBase64 = null;
        try {
            // in.available()返回文件的字节长度
            byte[] bytes = new byte[in.available()];
            // 将文件中的内容读入到数组中
            in.read(bytes);
            strBase64 = new BASE64Encoder().encode(bytes);      //将字节流数组转换为字符串
        } finally {
            if (in != null) {
                in.close();
            }
        }

        return strBase64;
    }

    /**
     * 流转换为字符串
     *
     * @param bytes
     * @return
     * @throws IOException
     */
    public static String byteToBase64(byte[] bytes)  {
        String strBase64 = null;
            // in.available()返回文件的字节长度
            strBase64 = new BASE64Encoder().encode(bytes);      //将字节流数组转换为字符串
        return strBase64;
    }


   

    /**
     * 将base64 转为字节
     *
     * @param strBase64
     * @return
     * @throws IOException
     */
    public static byte[] base64ToByte(String strBase64) throws IOException {
        // 解码,然后将字节转换为文件
        byte[] bytes = new BASE64Decoder().decodeBuffer(strBase64);   //将字符串转换为byte数组
        return bytes;
    }
}
推荐阅读
cjavapy编程之路首页