`
isiqi
  • 浏览: 16493698 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

J2ME 下的 Base64的编码与解码

阅读更多

基于J2ME的Base64的编码与解码的实现,原码如下:
  1. importjava.io.*;
  2. publicclassBase64{
  3. privatestaticchar[]base64EncodeChars=newchar[]{
  4. 'A','B','C','D','E','F','G','H',
  5. 'I','J','K','L','M','N','O','P',
  6. 'Q','R','S','T','U','V','W','X',
  7. 'Y','Z','a','b','c','d','e','f',
  8. 'g','h','i','j','k','l','m','n',
  9. 'o','p','q','r','s','t','u','v',
  10. 'w','x','y','z','0','1','2','3',
  11. '4','5','6','7','8','9','+','/'};
  12. privatestaticbyte[]base64DecodeChars=newbyte[]{
  13. -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
  14. -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
  15. -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,
  16. 52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,
  17. -1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,
  18. 15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,
  19. -1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,
  20. 41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1};
  21. privateBase64(){}
  22. publicstaticStringencode(byte[]data){
  23. StringBuffersb=newStringBuffer();
  24. intlen=data.length;
  25. inti=0;
  26. intb1,b2,b3;
  27. while(i<len){
  28. b1=data[i++]&0xff;
  29. if(i==len){
  30. sb.append(base64EncodeChars[b1>>>2]);
  31. sb.append(base64EncodeChars[(b1&0x3)<<4]);
  32. sb.append("==");
  33. break;
  34. }
  35. b2=data[i++]&0xff;
  36. if(i==len){
  37. sb.append(base64EncodeChars[b1>>>2]);
  38. sb.append(
  39. base64EncodeChars[((b1&0x03)<<4)|((b2&0xf0)>>>4)]);
  40. sb.append(base64EncodeChars[(b2&0x0f)<<2]);
  41. sb.append("=");
  42. break;
  43. }
  44. b3=data[i++]&0xff;
  45. sb.append(base64EncodeChars[b1>>>2]);
  46. sb.append(
  47. base64EncodeChars[((b1&0x03)<<4)|((b2&0xf0)>>>4)]);
  48. sb.append(
  49. base64EncodeChars[((b2&0x0f)<<2)|((b3&0xc0)>>>6)]);
  50. sb.append(base64EncodeChars[b3&0x3f]);
  51. }
  52. returnsb.toString();
  53. }
  54. publicstaticbyte[]decode(Stringstr){
  55. byte[]data=str.getBytes();
  56. intlen=data.length;
  57. ByteArrayOutputStreambuf=newByteArrayOutputStream(len);
  58. inti=0;
  59. intb1,b2,b3,b4;
  60. while(i<len){
  61. /*b1*/
  62. do{
  63. b1=base64DecodeChars[data[i++]];
  64. }while(i<len&&b1==-1);
  65. if(b1==-1){
  66. break;
  67. }
  68. /*b2*/
  69. do{
  70. b2=base64DecodeChars[data[i++]];
  71. }while(i<len&&b2==-1);
  72. if(b2==-1){
  73. break;
  74. }
  75. buf.write((int)((b1<<2)|((b2&0x30)>>>4)));
  76. /*b3*/
  77. do{
  78. b3=data[i++];
  79. if(b3==61){
  80. returnbuf.toByteArray();
  81. }
  82. b3=base64DecodeChars[b3];
  83. }while(i<len&&b3==-1);
  84. if(b3==-1){
  85. break;
  86. }
  87. buf.write((int)(((b2&0x0f)<<4)|((b3&0x3c)>>>2)));
  88. /*b4*/
  89. do{
  90. b4=data[i++];
  91. if(b4==61){
  92. returnbuf.toByteArray();
  93. }
  94. b4=base64DecodeChars[b4];
  95. }while(i<len&&b4==-1);
  96. if(b4==-1){
  97. break;
  98. }
  99. buf.write((int)(((b3&0x03)<<6)|b4));
  100. }
  101. returnbuf.toByteArray();
  102. }
  103. }

分享到:
评论

相关推荐

    应用于j2me的java mpeg4解码程序

    通过这些类的组合,一个完整的J2ME MPEG-4视频解码框架得以构建,能够在有限的资源下,实现在移动设备上播放MPEG-4编码的视频。然而,具体实现细节和工作流程需要查看源代码才能完全理解。在实际开发中,开发者需要...

    J2ME 实现的 UrlEncode编码

    J2ME 实现的 UrlEncode编码 J2ME 实现的 UrlEncode编码 J2ME 实现的 UrlEncode编码

    j2me 中各种汉字编码相互转换

    在Java ME(J2ME)环境中,汉字编码的相互转换是一项关键任务,因为不同的设备和平台可能使用不同的字符编码标准。本文将详细讲解如何在J2ME中进行UTF-8、Unicode、GB2312以及GBK编码之间的转换,帮助开发者解决跨...

    J2ME64位软件

    J2ME手机游戏开发软件和运行平台,包含64位软件和JAVA,和模拟器。

    commons-codec-1.4

    这个库在版本1.4中提供了一系列编码和解码工具,包括Base64编码,这是一个广泛用于在网络上传输二进制数据时将其转换为ASCII文本的机制。在Android和J2ME平台上,由于它们可能不内置完整的Java标准库,Apache ...

    j2me环境qrcode解码包测试

    这是一个测试包,解码库的源代码是由...鉴于目前二维码如此火热,在此发布这个测试器,将其装到支持摄像头的j2me手机上,基本上就能看看效果。应为其原有的测试程序,似乎不能跑。

    J2ME手机游戏开发技术与实践 ppt与源代码 李政仪

    **J2ME手机游戏开发技术与实践** J2ME(Java 2 Micro Edition)是Java平台的一个子集,专门用于嵌入式设备和移动设备,包括智能手机和平板电脑。在2000年代中期,J2ME是开发手机游戏的主流技术之一,尤其在诺基亚、...

    J2ME开发 J2ME开发 J2ME开发

    J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,主要用于嵌入式设备和移动设备的开发,如手机、智能电表、家庭自动化设备等。它提供了跨平台的开发环境,使得开发者可以编写一次代码,到处运行。J2ME由两大...

    j2me课程设计,服务器与客户机的发送

    【J2ME课程设计——构建服务器与客户端通信】 在IT领域,Java 2 Micro Edition(J2ME)是一种专门用于嵌入式设备和移动设备的Java平台。它为开发小型应用提供了框架,如手机游戏、应用程序和服务。本课程设计的主题...

    j2me 与jsp通信

    标题中的“j2me 与jsp通信”涉及的是在移动设备上使用Java 2 Micro Edition (J2ME)平台与服务器端的JavaServer Pages (JSP)进行数据交互的技术。J2ME通常用于开发功能手机和嵌入式系统的应用程序,而JSP则是Web开发...

    j2me QRcode编码

    此外,为了提高用户体验,还可以添加扫描二维码的功能,实现编码与解码的完整流程。 总结来说,"j2me QRcode编码"涉及到的是在Java 2 Micro Edition平台下,利用编程技术将文本数据转化为二维码图像的过程,这需要...

    郭克华J2me课件与代码

    通过郭克华老师的J2ME课件与代码,学习者不仅可以掌握J2ME的基本概念和技术,还能了解到实际开发中的最佳实践,为开发自己的J2ME应用程序打下坚实基础。同时,配合视频教程,可以让学习更加直观和高效,帮助开发者...

    J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏下,上为另一部分

    J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏

    J2ME下的手机格斗游戏源码,绝对可用

    这款"J2ME下的手机格斗游戏源码"提供了一个在小型设备上实现格斗游戏的实例,对于学习J2ME编程和游戏开发的初学者来说,是一个宝贵的学习资源。 源码中的关键知识点可能包括: 1. **用户界面设计**:J2ME使用MIDP...

    j2ME_MP3播放器

    为了播放MP3,需要一个第三方库,如JLayerME0.1.3,这是一个J2ME平台上的MP3解码库。 3. **JLayer库**:JLayerME0.1.3是基于JLayer的一个版本,JLayer是一个开源的Java MP3解码库。它实现了ID3标签解析和MP3帧解码...

    j2me_plane.rar_j2me_j2me 飞机_j2me 飞机 游戏_飞机游戏

    《J2ME飞机游戏开发详解》 J2ME(Java 2 Micro Edition)是Java平台的一个子集,专为移动设备、嵌入式系统等资源有限的环境设计。本篇文章将深入探讨如何利用J2ME技术开发一款简单的飞机游戏,以此帮助初学者理解...

    J2ME小游戏J2ME小游戏J2ME小游戏上,下为另一部分

    J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏

    J2ME下可以用的JSON包

    J2ME及安卓下可以用的JAR包,可以利它此包生成或解析JSON

    J2ME API 2.0 J2ME使用手册 J2ME帮助文档

    **J2ME API 2.0 - J2ME使用手册 - J2ME帮助文档** Java 2 Micro Edition(J2ME)是Java平台的一个子集,专为资源有限的设备如移动电话、智能手表和家用电器等设计。J2ME API 2.0 提供了在这些小型设备上开发应用...

    J2ME中文输入Demo

    在J2ME中,开发人员需要处理资源有限的环境,因此,提供中文输入功能是一个挑战,因为这需要在小型设备上实现复杂的字符编码和输入法。 本"J2ME中文输入Demo"旨在为开发者展示如何在J2ME环境中实现基本的中文输入...

Global site tag (gtag.js) - Google Analytics