Hallo,
ich möchte die Daten die von meinem Programm in eine Datei geschrieben werden umwandeln in HEX.
Ich dachte ich schreibe jetzt einfach einen eigenen OutputStream der das macht, sieht jetzt so aus:
Und so wende ich den an:
Leider werden die Methoden meines OutputStreams nicht aufgerufen, was mach ich denn genau falsche? Ich dachte eigentlich dass das reicht.
ich möchte die Daten die von meinem Programm in eine Datei geschrieben werden umwandeln in HEX.
Ich dachte ich schreibe jetzt einfach einen eigenen OutputStream der das macht, sieht jetzt so aus:
Java:
public class SFHexOutputStream extends OutputStream {
public SFHexOutputStream(OutputStream os) {
this.os = os;
}
@Override
public void write(int n) throws IOException {
os.write(hex_chars[n / 16]);
os.write(hex_chars[n % 16]);
os.flush();
}
@Override
public void flush() throws IOException {
super.flush();
os.flush();
}
private static final char hex_chars[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
private OutputStream os;
}
Java:
public static void saveMatchToStream(SFMatch match, OutputStream os) {
XMLEncoder enc = null;
try {
enc = new XMLEncoder(os);
enc.writeObject(match);
} finally {
if (enc != null) {
enc.close();
}
}
}
public static void saveMatchToXMLFile(SFMatch match, String filename) throws IOException {
FileOutputStream fos = new FileOutputStream(filename);
GZIPOutputStream gos = new GZIPOutputStream(fos);
SFHexOutputStream hex = new SFHexOutputStream(gos);
saveMatchToStream(match, gos);
hex.close();
gos.close();
fos.close();
}
Leider werden die Methoden meines OutputStreams nicht aufgerufen, was mach ich denn genau falsche? Ich dachte eigentlich dass das reicht.