/** * Encodes up to the first three bytes of array <var>threeBytes</var> * and returns a four-byte array in Base64 notation. * The actual number of significant bytes in your array is * given by <var>numSigBytes</var>. * The array <var>threeBytes</var> needs only be as big as * <var>numSigBytes</var>. * Code can reuse a byte array by passing a four-byte array as <var>b4</var>. * * @param b4 A reusable byte array to reduce array instantiation * @param threeBytes the array to convert * @param numSigBytes the number of significant bytes in your array * * @return four byte array in Base64 notation. * @since 1.5.1 */ private static byte[] encode3to4(byte[] b4, byte[] threeBytes, int numSigBytes, int options) { encode3to4(threeBytes, 0, numSigBytes, b4, 0, options); return b4; }
/** * Performs Base64 encoding on the <code>raw</code> ByteBuffer, writing it to the * <code>encoded</code> CharBuffer. * * This is an experimental feature. Currently it does not pass along any options * (such as {@link #DO_BREAK_LINES} or {@link #GZIP}. * * @deprecated Will be removed in 0.12.x release * * @param raw input buffer * @param encoded output buffer * @since 2.3 */ @Deprecated public static void encode(java.nio.ByteBuffer raw, java.nio.CharBuffer encoded) { byte[] raw3 = new byte[3]; byte[] enc4 = new byte[4]; while (raw.hasRemaining()) { int rem = Math.min(3, raw.remaining()); raw.get(raw3, 0, rem); Base64.encode3to4(enc4, raw3, rem, Base64.NO_OPTIONS); for (int i = 0; i < 4; i++) { encoded.put((char)(enc4[i] & 0xFF)); } } }
/** * Performs Base64 encoding on the <code>raw</code> ByteBuffer, writing it to the * <code>encoded</code> ByteBuffer. * * This is an experimental feature. Currently it does not pass along any options * (such as {@link #DO_BREAK_LINES} or {@link #GZIP}. * * @param raw input buffer * @param encoded output buffer * @since 2.3 * * @deprecated Will be removed in 0.12.x release */ @Deprecated public static void encode(java.nio.ByteBuffer raw, java.nio.ByteBuffer encoded) { byte[] raw3 = new byte[3]; byte[] enc4 = new byte[4]; while (raw.hasRemaining()) { int rem = Math.min(3, raw.remaining()); raw.get(raw3, 0, rem); Base64.encode3to4(enc4, raw3, rem, Base64.NO_OPTIONS); encoded.put(enc4); } }
int lineLength = 0; for ( ; d < len2; d += 3, e += 4) { encode3to4(source, d+off, 3, outBuff, e, options); lineLength += 4; if (breakLines && lineLength >= MAX_LINE_LENGTH) { encode3to4(source, d+off, len - d, outBuff, e, options); e += 4;