易截截图软件、单文件、免安装、纯绿色、仅160KB

Base64编码与解码的java实现

public class Base64 {
   
    //码表
    static private char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
            .toCharArray();
   
    //codes里存放的是值表
    //可以这么理解根据码表中的值可以得到编码前的值
    //如codes['A']=0,即为其索引值
    static private byte[] codes = new byte[256];   
    static {
        for (int i = 0; i < 256; i++)
            codes[i] = -1;
        for (int i = 'A'; i <= 'Z'; i++)
            codes[i] = (byte) (i - 'A');
        for (int i = 'a'; i <= 'z'; i++)
            codes[i] = (byte) (26 + i - 'a');
        for (int i = '0'; i <= '9'; i++)
            codes[i] = (byte) (52 + i - '0');
        codes['+'] = 62;
        codes['/'] = 63;
    }
    /**
     * 将原始数据编码为base64编码
     */
    static public char[] encode(byte[] data) {
        //对于原文的字节数量是3的倍数的时候,转换后的字符串理论上将要比原来的长1/3,即原来的4/3.
        //当原文的字节数不是3的倍数的时候,不足的地方我们补全.
        //故原文补全后的最大长度为 原字符串长度+2
        //编码后的长度为(原字符串长度+2)*3/4
        char[] out = new char[((data.length + 2) / 3) * 4];
   


相关文档:

解析Java类和对象的初始化过程

类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。
本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后, ......

Java解析网络数据流的三种特殊方法

UTF8转换成GB2312 当我们在基于HTTP协议的JSP或Servlet的应用中获取数据或发送请求时,JVM会把输送的数据编码成UTF8格式。如果我们直接从HTTP流中提取中文数据,提取的结果为“????”(可能更多问号),为转换成我们能够理解的中文字符,我们需要把UTF8转换成GB2312,借助ISO-8859-1标准编码能够轻易的实现,下面 ......

java jdk5 中的装箱与拆箱

看过.NET基础的朋友可能对这个装箱和拆箱的概念并不陌生。首先,我们必须明确一点,在Java中,有两种截然不同的数据类型:值类型和引用类
型。值类型的数据不是对象,因而所占的内存和资源都相对较少,但是不能作为对象调用其toString()、hashCode()、
getClass()、equals()等等方法,也不能被直接加入到集合中;引用类型 ......

Java字符串函数集锦


java中的字符串也是一连串的字符。但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理。将字符串作为内置的对象处理允许Java提供十分丰富的功能特性以方便处理字符串。下面是一些使用频率比较高的函数及其相关说明。
String相关函数
1)substring()
它有两种形式,第一种 ......

Java获取各种常用时间方法

package com.test;


import java.text.DateFormat;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class TimeTest {
//用来 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号