开发手册 欢迎您!
软件开发者资料库

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

本文主要介绍Java中, 将输入流InputStream或byte[]字节数据与Base64字符串相互转换的工具类。
package com.wonhero.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;    }}