websocket/src/main/java/org/nanohttpd/protocols/websockets/NanoWSD.java
private static String encodeBase64(byte[] buf) {
        int size = buf.length;
        char[] ar = new char[(size + 2) / 3 * 4];
        int a = 0;
        int i = 0;
        while (i < size) {
            byte b0 = buf[i++];
            byte b1 = i < size ? buf[i++] : 0;
            byte b2 = i < size ? buf[i++] : 0;

            int mask = 0x3F;
            ar[a++] = NanoWSD.ALPHABET[b0 >> 2 & mask];
            ar[a++] = NanoWSD.ALPHABET[(b0 << 4 | (b1 & 0xFF) >> 4) & mask];
            ar[a++] = NanoWSD.ALPHABET[(b1 << 2 | (b2 & 0xFF) >> 6) & mask];
            ar[a++] = NanoWSD.ALPHABET[b2 & mask];
        }
        switch (size % 3) {
            case 1:
                ar[--a] = '=';
            case 2:
                ar[--a] = '=';
        }
        return new String(ar);
    }
private static String encodeBase64(byte[] buf) {
        int size = buf.length;
        char[] ar = new char[(size + 2) / 3 * 4];
        int a = 0;
        int i = 0;
        while (i < size) {
            byte b0 = buf[i++];
            byte b1 = i < size ? buf[i++] : 0;
            byte b2 = i < size ? buf[i++] : 0;

            int mask = 0x3F;
            ar[a++] = NanoWSD.ALPHABET[b0 >> 2 & mask];
            ar[a++] = NanoWSD.ALPHABET[(b0 << 4 | (b1 & 0xFF) >> 4) & mask];
            ar[a++] = NanoWSD.ALPHABET[(b1 << 2 | (b2 & 0xFF) >> 6) & mask];
            ar[a++] = NanoWSD.ALPHABET[b2 & mask];
        }
        switch (size % 3) {
            case 1:
                ar[--a] = '=';
            case 2:
                ar[--a] = '=';
        }
        return new String(ar);
    }
private static String encodeBase64 ( byte [ ] buf ) { int size = buf . length ; char [ ] ar = new char [ ( size + 2 ) / 3 * 4 ] ; int a = 0 ; int i = 0 ; while ( i < size ) { byte b0 = buf [ i ++ ] ; byte b1 = i < size ? buf [ i ++ ] : 0 ; byte b2 = i < size ? buf [ i ++ ] : 0 ; int mask = 0x3F ; ar [ a ++ ] = NanoWSD . ALPHABET [ b0 >> 2 & mask ] ; ar [ a ++ ] = NanoWSD . ALPHABET [ ( b0 << 4 | ( b1 & 0xFF ) >> 4 ) & mask ] ; ar [ a ++ ] = NanoWSD . ALPHABET [ ( b1 << 2 | ( b2 & 0xFF ) >> 6 ) & mask ] ; ar [ a ++ ] = NanoWSD . ALPHABET [ b2 & mask ] ; } switch ( size % 3 ) { case 1 : ar [ -- a ] = ' ' ; case 2 : ar [ -- a ] = ' ' ; } return new String ( ar ) ; }
Translates the specified byte array into Base64 string.
<p>
Android has android.util.Base64, sun has sun.misc.Base64Encoder, Java 8
hast java.util.Base64, I have this from stackoverflow:
http://stackoverflow.com/a/4265472
</p>

@param buf
the byte array (not null)
@return the translated Base64 string (not null)
Translates the specified byte array into Base64 string . <p > Android has android . util . Base64 sun has sun . misc . Base64Encoder Java 8 hast java . util . Base64 I have this from stackoverflow : http : // stackoverflow . com / a / 4265472 < / p >