Android Base64 Byte Array Encode encode(byte raw[])

Here you can find the source of encode(byte raw[])

Description

encode

Declaration

public static String encode(byte raw[]) 

Method Source Code

//package com.java2s;

public class Main {
    public static String encode(byte raw[]) {
        StringBuffer encoded = new StringBuffer();

        for (int i = 0; i < raw.length; i += 3) {
            encoded.append(encodeBlock(raw, i));
        }/* ww  w . j  a  v a2  s  .com*/

        return encoded.toString();
    }

    public static String encode(String s) {
        return encode(s.getBytes());
    }

    protected static char[] encodeBlock(byte raw[], int offset) {
        int block = 0;
        int slack = raw.length - offset - 1;
        int end = slack < 2 ? slack : 2;

        for (int i = 0; i <= end; i++) {
            byte b = raw[offset + i];

            int neuter = b >= 0 ? ((int) (b)) : b + 256;
            block += neuter << 8 * (2 - i);
        }

        char base64[] = new char[4];

        for (int i = 0; i < 4; i++) {
            int sixbit = block >>> 6 * (3 - i) & 0x3f;
            base64[i] = getChar(sixbit);
        }

        if (slack < 1) {
            base64[2] = '=';
        }

        if (slack < 2) {
            base64[3] = '=';
        }

        return base64;
    }

    protected static char getChar(int sixbit) {
        if (sixbit >= 0 && sixbit <= 25) {
            return (char) (65 + sixbit);
        }

        if (sixbit >= 26 && sixbit <= 51) {
            return (char) (97 + (sixbit - 26));
        }

        if (sixbit >= 52 && sixbit <= 61) {
            return (char) (48 + (sixbit - 52));
        }

        if (sixbit == 62) {
            return '+';
        }

        return sixbit != 63 ? '?' : '/';
    }
}

Related

  1. encodeBase64Byte(byte base64Byte)
  2. encodeLast2Bytes(byte bytes[])
  3. encodeLast1Byte(byte bytes[])
  4. encode(byte[] data)
  5. encode(byte[] data)
  6. encode(byte[] data)
  7. encode(byte[] bytes)
  8. encode(byte[] data)
  9. encode(byte[] data)