Java Base64 base64(byte[] raw)

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

Description

base

License

Open Source License

Declaration

public static String base64(byte[] raw) 

Method Source Code

//package com.java2s;

public class Main {
    static char[] base64EncodingTable = new char[] { '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', '+', '/' };

    public static String base64(byte[] raw) {
        int ixtext, lentext;
        int ctremaining;
        byte[] input = new byte[3], output = new byte[4];
        short i, charsonline = 0, ctcopy;
        StringBuffer result;//from w w w. ja  va  2s .  co  m

        lentext = raw.length;

        if (lentext < 1) {
            return "";
        }

        result = new StringBuffer(lentext);

        ixtext = 0;

        while (true) {
            ctremaining = lentext - ixtext;

            if (ctremaining <= 0) {
                break;
            }

            for (i = 0; i < 3; i++) {
                int ix = ixtext + i;

                if (ix < lentext) {
                    input[i] = raw[ix];
                } else {
                    input[i] = 0;
                }
            }

            output[0] = (byte) ((input[0] & 0xFC) >> 2);
            output[1] = (byte) (((input[0] & 0x03) << 4) | ((input[1] & 0xF0) >> 4));
            output[2] = (byte) (((input[1] & 0x0F) << 2) | ((input[2] & 0xC0) >> 6));
            output[3] = (byte) (input[2] & 0x3F);

            ctcopy = 4;

            switch (ctremaining) {
            case 1:
                ctcopy = 2;
                break;
            case 2:
                ctcopy = 3;
                break;
            }

            for (i = 0; i < ctcopy; i++) {
                result.append(base64EncodingTable[output[i]]);
            }

            for (i = ctcopy; i < 4; i++) {
                result.append("=");
            }

            ixtext += 3;
            charsonline += 4;

            if ((ixtext % 90) == 0) {
                result.append("\n");
            }

            if (raw.length > 0) {
                if (charsonline >= raw.length) {
                    charsonline = 0;

                    result.append("\n");
                }
            }
        }

        return result.toString();
    }
}

Related

  1. base64()
  2. base64(byte[] buf)
  3. base64(byte[] buff)
  4. base64(byte[] data)
  5. base64(final byte[] stringArray)
  6. Base64(String msg)
  7. base64(String string)
  8. base64(String value)