FileDumper6public class FileDumper6 extends Object
Fields Summary |
---|
public static final int | ASC | public static final int | DEC | public static final int | HEX | public static final int | SHORT | public static final int | INT | public static final int | LONG | public static final int | FLOAT | public static final int | DOUBLE |
Methods Summary |
---|
public static void | dump(java.io.InputStream in, java.io.OutputStream out, int mode, boolean bigEndian, boolean deflated, boolean gzipped, java.lang.String password)
// The reference variable in may point to several different objects
// within the space of the next few lines.
if (password != null && !password.equals("")) {
// create a key
try {
byte[] desKeyData = password.getBytes();
DESKeySpec desKeySpec = new DESKeySpec(desKeyData);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey desKey = keyFactory.generateSecret(desKeySpec);
// use Data Encryption Standard
Cipher des = Cipher.getInstance("DES/ECB/PKCS5Padding");
des.init(Cipher.DECRYPT_MODE, desKey);
in = new CipherInputStream(in, des);
}
catch (GeneralSecurityException e) {
throw new IOException(e.getMessage());
}
}
if (deflated) {
in = new InflaterInputStream(in);
}
else if (gzipped) {
in = new GZIPInputStream(in);
}
// could really pass to FileDumper3 at this point
if (bigEndian) {
DataInputStream din = new DataInputStream(in);
switch (mode) {
case HEX:
in = new HexFilter(in);
break;
case DEC:
in = new DecimalFilter(in);
break;
case INT:
in = new IntFilter(din);
break;
case SHORT:
in = new ShortFilter(din);
break;
case LONG:
in = new LongFilter(din);
break;
case DOUBLE:
in = new DoubleFilter(din);
break;
case FLOAT:
in = new FloatFilter(din);
break;
default:
}
}
else {
LittleEndianInputStream lin = new LittleEndianInputStream(in);
switch (mode) {
case HEX:
in = new HexFilter(in);
break;
case DEC:
in = new DecimalFilter(in);
break;
case INT:
in = new LEIntFilter(lin);
break;
case SHORT:
in = new LEShortFilter(lin);
break;
case LONG:
in = new LELongFilter(lin);
break;
case DOUBLE:
in = new LEDoubleFilter(lin);
break;
case FLOAT:
in = new LEFloatFilter(lin);
break;
default:
}
}
StreamCopier.copy(in, out);
in.close();
| public static void | dump(java.io.InputStream in, java.io.OutputStream out, java.lang.String inputEncoding, java.lang.String outputEncoding, boolean deflated, boolean gzipped, java.lang.String password)
if (inputEncoding == null || inputEncoding.equals("")) {
dump(in, out, ASC, true, deflated, gzipped, password);
return;
}
if (outputEncoding == null || outputEncoding.equals("")) {
outputEncoding = System.getProperty("file.encoding", "8859_1");
}
// Note that the reference variable in
// may point to several different objects
// within the space of the next few lines
if (password != null && !password.equals("")) {
try {
// create a key
byte[] desKeyData = password.getBytes();
DESKeySpec desKeySpec = new DESKeySpec(desKeyData);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey desKey = keyFactory.generateSecret(desKeySpec);
// use Data Encryption Standard
Cipher des = Cipher.getInstance("DES/ECB/PKCS5Padding");
des.init(Cipher.DECRYPT_MODE, desKey);
in = new CipherInputStream(in, des);
}
catch (GeneralSecurityException e) {
throw new IOException(e.getMessage());
}
}
if (deflated) {
in = new InflaterInputStream(in);
}
else if (gzipped) {
in = new GZIPInputStream(in);
}
InputStreamReader isr = new InputStreamReader(in, inputEncoding);
OutputStreamWriter osw = new OutputStreamWriter(out, outputEncoding);
int c;
while ((c = isr.read()) != -1) {
osw.write(c);
}
isr.close();
osw.close();
|
|