/*
*/
/*
* A test of the undocumented sun.misc.Base64Encoder and
* sun.misc.Base64Decoder classes
*/
import java.io.*;
import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
public class Base64Test
{
public static void main (String[] args)
{
String str = "";
String fileName = "";
switch (args.length) {
case 0 :
System.out.println("USAGE: java Base64Test stringToEncode [fileToEncode]");
return;
case 1 :
str = args[0];
break;
default :
str = args[0];
fileName = args[1];
break;
}
try {
BASE64Encoder encoder = new BASE64Encoder();
BASE64Decoder decoder = new BASE64Decoder();
String encodedStr = encoder.encodeBuffer(str.getBytes());
byte[] decodedStr = decoder.decodeBuffer(encodedStr);
System.out.println("Original String = " + str);
System.out.println(" Encoded String = " + encodedStr);
System.out.println(" Decoded String = " + new String(decodedStr));
if (fileName.length() > 0) {
// the encodeBuffer and decodeBuffer methods can also
// accept an InputStream and an OutputStream as parameters,
// which is handy for working with files
String encFileName = fileName + ".enc";
String decFileName = fileName + ".dec";
FileInputStream in = new FileInputStream(fileName);
FileOutputStream out = new FileOutputStream(encFileName);
encoder.encodeBuffer(in, out);
in.close();
out.close();
in = new FileInputStream(encFileName);
out = new FileOutputStream(decFileName);
decoder.decodeBuffer(in, out);
in.close();
out.close();
System.out.println("\nOriginal File = " + fileName);
System.out.println(" Encoded File = " + encFileName);
System.out.println(" Decoded File = " + decFileName);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}