基于J2ME的Base64的编码与解码的实现,原码如下:
-
importjava.io.*;
-
publicclassBase64{
-
privatestaticchar[]base64EncodeChars=newchar[]{
-
'A','B','C','D','E','F','G','H',
-
'I','J','K','L','M','N','O','P',
-
'Q','R','S','T','U','V','W','X',
-
'Y','Z','a','b','c','d','e','f',
-
'g','h','i','j','k','l','m','n',
-
'o','p','q','r','s','t','u','v',
-
'w','x','y','z','0','1','2','3',
-
'4','5','6','7','8','9','+','/'};
-
privatestaticbyte[]base64DecodeChars=newbyte[]{
-
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,
-
52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,
-
-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,
-
15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,
-
-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,
-
41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1};
-
privateBase64(){}
-
publicstaticStringencode(byte[]data){
-
StringBuffersb=newStringBuffer();
-
intlen=data.length;
-
inti=0;
-
intb1,b2,b3;
-
while(i<len){
-
b1=data[i++]&0xff;
-
if(i==len){
-
sb.append(base64EncodeChars[b1>>>2]);
-
sb.append(base64EncodeChars[(b1&0x3)<<4]);
-
sb.append("==");
-
break;
- }
-
b2=data[i++]&0xff;
-
if(i==len){
-
sb.append(base64EncodeChars[b1>>>2]);
- sb.append(
-
base64EncodeChars[((b1&0x03)<<4)|((b2&0xf0)>>>4)]);
-
sb.append(base64EncodeChars[(b2&0x0f)<<2]);
-
sb.append("=");
-
break;
- }
-
b3=data[i++]&0xff;
-
sb.append(base64EncodeChars[b1>>>2]);
- sb.append(
-
base64EncodeChars[((b1&0x03)<<4)|((b2&0xf0)>>>4)]);
- sb.append(
-
base64EncodeChars[((b2&0x0f)<<2)|((b3&0xc0)>>>6)]);
-
sb.append(base64EncodeChars[b3&0x3f]);
- }
-
returnsb.toString();
- }
-
publicstaticbyte[]decode(Stringstr){
-
byte[]data=str.getBytes();
-
intlen=data.length;
-
ByteArrayOutputStreambuf=newByteArrayOutputStream(len);
-
inti=0;
-
intb1,b2,b3,b4;
-
while(i<len){
-
-
do{
- b1=base64DecodeChars[data[i++]];
-
}while(i<len&&b1==-1);
-
if(b1==-1){
-
break;
- }
-
-
do{
- b2=base64DecodeChars[data[i++]];
-
}while(i<len&&b2==-1);
-
if(b2==-1){
-
break;
- }
-
buf.write((int)((b1<<2)|((b2&0x30)>>>4)));
-
-
do{
- b3=data[i++];
-
if(b3==61){
-
returnbuf.toByteArray();
- }
- b3=base64DecodeChars[b3];
-
}while(i<len&&b3==-1);
-
if(b3==-1){
-
break;
- }
-
buf.write((int)(((b2&0x0f)<<4)|((b3&0x3c)>>>2)));
-
-
do{
- b4=data[i++];
-
if(b4==61){
-
returnbuf.toByteArray();
- }
- b4=base64DecodeChars[b4];
-
}while(i<len&&b4==-1);
-
if(b4==-1){
-
break;
- }
-
buf.write((int)(((b3&0x03)<<6)|b4));
- }
-
returnbuf.toByteArray();
- }
- }
分享到:
相关推荐
通过这些类的组合,一个完整的J2ME MPEG-4视频解码框架得以构建,能够在有限的资源下,实现在移动设备上播放MPEG-4编码的视频。然而,具体实现细节和工作流程需要查看源代码才能完全理解。在实际开发中,开发者需要...
J2ME 实现的 UrlEncode编码 J2ME 实现的 UrlEncode编码 J2ME 实现的 UrlEncode编码
在Java ME(J2ME)环境中,汉字编码的相互转换是一项关键任务,因为不同的设备和平台可能使用不同的字符编码标准。本文将详细讲解如何在J2ME中进行UTF-8、Unicode、GB2312以及GBK编码之间的转换,帮助开发者解决跨...
J2ME手机游戏开发软件和运行平台,包含64位软件和JAVA,和模拟器。
这个库在版本1.4中提供了一系列编码和解码工具,包括Base64编码,这是一个广泛用于在网络上传输二进制数据时将其转换为ASCII文本的机制。在Android和J2ME平台上,由于它们可能不内置完整的Java标准库,Apache ...
这是一个测试包,解码库的源代码是由...鉴于目前二维码如此火热,在此发布这个测试器,将其装到支持摄像头的j2me手机上,基本上就能看看效果。应为其原有的测试程序,似乎不能跑。
**J2ME手机游戏开发技术与实践** J2ME(Java 2 Micro Edition)是Java平台的一个子集,专门用于嵌入式设备和移动设备,包括智能手机和平板电脑。在2000年代中期,J2ME是开发手机游戏的主流技术之一,尤其在诺基亚、...
J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,主要用于嵌入式设备和移动设备的开发,如手机、智能电表、家庭自动化设备等。它提供了跨平台的开发环境,使得开发者可以编写一次代码,到处运行。J2ME由两大...
【J2ME课程设计——构建服务器与客户端通信】 在IT领域,Java 2 Micro Edition(J2ME)是一种专门用于嵌入式设备和移动设备的Java平台。它为开发小型应用提供了框架,如手机游戏、应用程序和服务。本课程设计的主题...
标题中的“j2me 与jsp通信”涉及的是在移动设备上使用Java 2 Micro Edition (J2ME)平台与服务器端的JavaServer Pages (JSP)进行数据交互的技术。J2ME通常用于开发功能手机和嵌入式系统的应用程序,而JSP则是Web开发...
此外,为了提高用户体验,还可以添加扫描二维码的功能,实现编码与解码的完整流程。 总结来说,"j2me QRcode编码"涉及到的是在Java 2 Micro Edition平台下,利用编程技术将文本数据转化为二维码图像的过程,这需要...
通过郭克华老师的J2ME课件与代码,学习者不仅可以掌握J2ME的基本概念和技术,还能了解到实际开发中的最佳实践,为开发自己的J2ME应用程序打下坚实基础。同时,配合视频教程,可以让学习更加直观和高效,帮助开发者...
J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏
这款"J2ME下的手机格斗游戏源码"提供了一个在小型设备上实现格斗游戏的实例,对于学习J2ME编程和游戏开发的初学者来说,是一个宝贵的学习资源。 源码中的关键知识点可能包括: 1. **用户界面设计**:J2ME使用MIDP...
为了播放MP3,需要一个第三方库,如JLayerME0.1.3,这是一个J2ME平台上的MP3解码库。 3. **JLayer库**:JLayerME0.1.3是基于JLayer的一个版本,JLayer是一个开源的Java MP3解码库。它实现了ID3标签解析和MP3帧解码...
《J2ME飞机游戏开发详解》 J2ME(Java 2 Micro Edition)是Java平台的一个子集,专为移动设备、嵌入式系统等资源有限的环境设计。本篇文章将深入探讨如何利用J2ME技术开发一款简单的飞机游戏,以此帮助初学者理解...
J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏
J2ME及安卓下可以用的JAR包,可以利它此包生成或解析JSON
**J2ME API 2.0 - J2ME使用手册 - J2ME帮助文档** Java 2 Micro Edition(J2ME)是Java平台的一个子集,专为资源有限的设备如移动电话、智能手表和家用电器等设计。J2ME API 2.0 提供了在这些小型设备上开发应用...
在J2ME中,开发人员需要处理资源有限的环境,因此,提供中文输入功能是一个挑战,因为这需要在小型设备上实现复杂的字符编码和输入法。 本"J2ME中文输入Demo"旨在为开发者展示如何在J2ME环境中实现基本的中文输入...