Java-Base64Fiend工具类

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

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

/**
 * 对base64编码的封装,为了提高维护性
 */
public class Base64Fiend {
    

    /**
     * 将byte类型的数据经过base64编码转为string.
     * 
     * @param fileData
     *            byte类型的数据 .
     * @return 转码后的数据,发生异常或者filedate为null时返回null.
     */
    public static String encode(byte[] fileData) {

        if (fileData == null) {
            //logger.info(("not get the fileData!"));
            return null;
        }
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(fileData).replaceAll("\\s*","");

    }

    /**
     * 将string类型的数据转码为byte类型.
     * 
     * @param fileData
     *            String 类型的数据.
     * @return 转码后的数据byte类型,发生异常或者filedate为null时返回null.
     */
    public static byte[] decode(String fileData) {
        if (fileData == null) {
            return null;
        }
        BASE64Decoder decoder = new BASE64Decoder();
        try {
            return decoder.decodeBuffer(fileData);
        } catch (IOException e) {
            e.printStackTrace();
            //logger.info(e.toString());
        }
        return null;
    }

    /**
     * 将InputStream类型的数据转码为String.
     * 
     * @param fileData
     *            InputStream类型的数据.
     * @return 转码后的数据String类型,发生异常或者filedate为null时返回null.
     */
    public static String encode(InputStream fileData) {
        if (fileData == null) {
            return null;
        }
        BASE64Encoder encoder = new BASE64Encoder();
        byte[] _fileData;
        try {
            _fileData = new byte[fileData.available()];
            fileData.read(_fileData);
            fileData.close();
            return encoder.encode(_fileData).replaceAll("\\s*","");
        } catch (IOException e) {
            e.printStackTrace();
            //logger.info(e.toString());
        }
        return null;
    }

    public static FileInputStream stringToInput(String data){
        File file = new File(data);
        FileInputStream input = null;
        try {
            input = new FileInputStream(file);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return input;
    }
    /**对String编码.
     * @param string
     * @return
     */
    public static String encodeToString(String string){
        if(string==null){
            return null;
        }else{
            return encode(string.getBytes());
        }
    }
    public static String decodeToString(String string){
        if(string==null){
            return null;
        }else{
            byte[] _byte=decode(string);
            return new String(_byte);
        }
    }

    /**
     * 将对象编码为base64的String.
     * 
     * @param object
     *            要进行编码的对象.
     * @return 编码后的对象对应的bease64String.
     */
    public static String encodeObject(Object object) {
        String objectString = null;
        ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
        try {
            ObjectOutputStream objectOutputStream = new ObjectOutputStream(
                    arrayOutputStream);
            objectOutputStream.writeObject(object);
            objectString = encode(arrayOutputStream
                    .toByteArray());
        } catch (IOException e) {
            //logger.info(e.toString());
            e.printStackTrace();
        }
        return objectString;
    }

    /**
     * 将bease64的String解编码为对象;
     * 
     * @param objectString
     *            可以解编码为Object的Base64String,如果不能解编码为Object抛出异常.
     * @return 解编码成功后的对象.
     */
    public static Object decodeObject(String objectString) {
        Object object = null;
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
                decode(objectString));
        try {
            ObjectInputStream objectInputStream = new ObjectInputStream(
                    byteArrayInputStream);
            object = objectInputStream.readObject();
        } catch (IOException e) {
            //logger.info(e.toString());
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            //logger.info(e.toString());
            e.printStackTrace();
        }
        return object;
    }

    public static void main(String[] args) {
        String s = "sadfihowiqjDLAFKJASDLFKLASD阿拉卡积分拉丝机v3u5925u";
        String s1 = Base64Fiend.encode(s.getBytes());
        System.out.println(s1);
        s1 = "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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值