分享
 
 
 

一个进行Base64编码的类

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

作者:sonymusic

email: sonymusic@china.com

日期:2001-3-12 15:01:35

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)+"

";

index+=splitLen;

}

if(index<strIn.length()){

strOut+=strIn.substring(index);

}

return strOut;

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有