快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

一个进行Base64编码的类。

package sony.utils;

import java.io.*;
import java.net.*;
public final class Codes {
public final static byte[] base64Encode(byte[] byteData) {
    if (byteData == null)
        return null;
    int iSrcIdx; // index into source (byteData)
    int iDestIdx; // index into destination (byteDest)
    byte byteDest[] = new byte[((byteData.length + 2) / 3) * 4];

    for (iSrcIdx = 0, iDestIdx = 0; iSrcIdx < byteData.length - 2; iSrcIdx += 3) {
        byteDest[iDestIdx++] = (byte) ((byteData[iSrcIdx] >>> 2) & 077);
        byteDest[iDestIdx++] =
            (byte) ((byteData[iSrcIdx + 1] >>> 4) & 017 | (byteData[iSrcIdx] << 4) & 077);
        byteDest[iDestIdx++] =
            (byte) ((byteData[iSrcIdx + 2] >>> 6)
                & 003
                | (byteData[iSrcIdx + 1] << 2)
                & 077);
        byteDest[iDestIdx++] = (byte) (byteData[iSrcIdx + 2] & 077);
    }

    if (iSrcIdx < byteData.length) {
        byteDest[iDestIdx++] = (byte) ((byteData[iSrcIdx] >>> 2) & 077);
        if (iSrcIdx < byteData.length - 1) {
            byteDest[iDestIdx++] =
                (byte) ((byteData[iSrcIdx + 1] >>> 4) & 017 | (byteData[iSrcIdx] << 4) & 077);
            byteDest[iDestIdx++] = (byte) ((byteData[iSrcIdx + 1] << 2) & 077);
        } else
            byteDest[iDestIdx++] = (byte) ((byteData[iSrcIdx] << 4) & 077);
    }

    for (iSrcIdx = 0; iSrcIdx < iDestIdx; iSrcIdx++) {
        if (byteDest[iSrcIdx] < 26)
            byteDest[iSrcIdx] = (byte) (byteDest[iSrcIdx] + \\\'A\\\');
        else
            if (byteDest[iSrcIdx] < 52)
                byteDest[iSrcIdx] = (byte) (byteDest[iSrcIdx] + \\\'a\\\' - 26);
            else
                if (byteDest[iSrcIdx] < 62)
                    byteDest[iSrcIdx] = (byte) (byteDest[iSrcIdx] + \\\'0\\\' - 52);
                else
                    if (byteDest[iSrcIdx] < 63)
                        byteDest[iSrcIdx] = (byte) \\\'+\\\';
                    else
                        byteDest[iSrcIdx] = (byte) \\\'/\\\';
    }

    for (; iSrcIdx < byteDest.length; iSrcIdx++)
        byteDest[iSrcIdx] = (byte) \\\'=\\\';

    return byteDest;
}
public final static String base64Encode(String strInput) {
    if (strInput == null)
        return null;
    return base64Encode(strInput,"GB2312");
}
public final static String base64Encode(String strInput,String charSet) {
    if (strInput == null)
        return null;
    String strOutput=null;
    byte byteData[] = new byte[strInput.length()];
    try {
        //strInput.getBytes(0, strInput.length(), byteData, 0);
        byteData = strInput.getBytes(charSet);
        strOutput=new String(base64Encode(byteData),charSet);
        //strOutput=new String(base64Encode(byteData),0);
    } catch (UnsupportedEncodingException e) {
        return null;
    }
    return strOutput;
}
/**
* 此处插入方式说明。
* 创建日期:(2000-11-4 18:27:35)
* @param steam java.io.InputStream
* @param charSet java.lang.String
*/
public final static String base64Encode(InputStream in, String charSet) {
    try {
        int c;
        byte[] buff = new byte[1024];
        ByteArrayOutputStream out = new ByteArrayOutputStream(2048);
        while ((c = in.read(buff, 0, 1024)) != -1) {
            out.write(buff, 0, c);
            //index+=1024;
            //out.write(c);
            //attachContent+=ss;
        }
        in.close();
        out.flush();
        byte[] tmp2 = Codes.base64Encode(out.toByteArray());
        out.close();
        return new String(tmp2,charSet);
    }
    catch (IOException e) {
        return "";
    }
}/**
* 此处插入方式说明。
* 创建日期:(2000-11-3 23:31:04)
* @return java.lang.String
* @param strIn java.lang.String
*/  
public final static String chunkSplit(String strIn) {
    return chunkSplit(strIn,76);
}/**
* 此处插入方式说明。
* 创建日期:(2000-11-3 23:31:04)
* @return java.lang.String
* @param strIn java.lang.String
*/  
public final static String chunkSplit(String strIn,int splitLen) {
    int index=0;
    String strOut="";
    while(index+splitLen<strIn.length()){
        strOut+=strIn.substring(index,index+splitLen)+"/n";
        index+=splitLen;
    }
    if(index<strIn.length()){
        strOut+=strIn.substring(index);
    }
    return strOut;
}
}



返回类别: 教程
上一教程: Java 学习方式浅谈
下一教程: Java Reflection (JAVA反射)

您可以阅读与"一个进行Base64编码的类。"相关的教程:
· 一个stmt多个rs进行操作引起的ResultSet已经关闭错误
· JavaScript escape/unescape编码的Java实现
· 一个用JSP实现的分页的类及调用方式
· JAVA里字符编码的探索与理解
· 果果来看(一个封装了基本JDBC操作的类)
    微笑服务 优质保证 索取样品