Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Creative commons Attribution-NonCommercial license. http://creativecommons.org/licenses/by-nc/2.5/au/deed.en_GB NO WARRANTY IS GIVEN OR IMPLIED, USE AT YOUR OWN RISK.
  
  package base.text;
  
Encode a string or a stream in base 64.
 
 public class Base64Encode {
 
 	private static final int END_MARKER = -1;
 
 	protected static final byte[] LOOKUP_MAP = {
 		'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''+''/',
 	};

Encode a String in Base64 using default character encoding.

Parameters:
string The string to encode.
Returns:
A base 64 encoded String.
 
 	public static String encode(String string) {
 		return encode(string.getBytes());
 	}

Encode bytes in Base64.

Parameters:
bytes The data to encode.
Returns:
Encoded base 64 string.
 
 	public static String encode(byte[] bytes) {
 		int length = bytes.length;
 		int mod;
 
 		// Size of output buffer will be (bytes * (4/3)).
 		if ((mod = length % 3) != 0){
 			length += 3 - mod;
 		}
 		length = length * 4 / 3;
 		try {
 			encode(inout);
 		} catch (IOException x) {
 			// Reading/writing to from Input/OutputStream should not
 			// ever fail, so passing up (and hence requiring handling of)
 			// an IOException is not useful. IF an IOException ever occurs
 			// something really strange is going on. (Hence RuntimeException)
 			throw new RuntimeException(x);
 		}
 		return new String(out.toByteArray());
 	}

Encode data from the InputStream to the OutputStream in Base64.

Parameters:
in Stream from which to read data that needs to be encoded.
out Stream to which to write encoded data.
Throws:
java.io.IOException if there is a problem reading or writing.
 
 	public static void encode(InputStream inOutputStream outthrows IOException {
 		int[] inBuffer = new int[3];
 
 		boolean done = false;
 		while (!done && (inBuffer[0] = in.read()) != ) {
 			// Fill the buffer
 			inBuffer[1] = in.read();
 			inBuffer[2] = in.read();
 
 			/*
 			 * The first byte of input is valid but must check other two bytes
 			 * are not equal to END_MARKER. Each set of three bytes add up to 24
 			 * bits, the 24 bits are split up into 4 bytes of 6 bits and
 			 * converted to ascii characters.
 			 *
 			 * If there are not enough bytes to make a 24 bit group, the
 			 * remaining ascii characters are converted to the = character.
 			 */
 
			// Byte 1: first six bits of first byte
			out.write([inBuffer[0] >> 2]);
			if (inBuffer[1] != ) {
				// Byte 2: last two bits of first byte, first four bits of
				// second byte
				out.write([((inBuffer[0] << 4) & 0x30) | (inBuffer[1] >> 4)]);
				if (inBuffer[2] != ) {
					// Byte 3: last four bits of second byte, first two bits of
					// third byte
					out.write([((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6)]);
					// Byte 4: last six bits of third byte
					out.write([inBuffer[2] & 0x3F]);
else {
					// Byte 3: last four bits of second byte
					out.write([((inBuffer[1] << 2) & 0x3c)]);
					// Output = if no more characters to write
					out.write('=');
					done = true;
				}
else {
				// Byte 2: last two bits of first byte
				out.write([((inBuffer[0] << 4) & 0x30)]);
				// Output = if no more characters to write
				out.write('=');
				out.write('=');
				done = true;
			}
		}
		out.flush();
	}
New to GrepCode? Check out our FAQ X