mcdroemmel
Mitglied
Hallo Kollegenz,
hätte da mal wieder eine Frage an die Java-Gurus unter Euch.
Ich muss für meine Anwendung eine Klasse schreiben, die Daten exportiert für eine externe, in C++ geschriebene Anwendung.
Arbeite da mit den Leuten "der anderen Seite" zusammen und wir sind noch bei den Grundlangen.
In der Datei werden dann Integer, Longs und Strings abgelegt. Das ganze soll unten letzten Endes byteorientiert in die Datei geschrieben werden, da es zwischen C und Java noch Umwandlungen bedarf (Stichwort Big und Little Endian). Das ist aber jetzt hier noch nicht von Belang.
Die Klasse muss aber auf jeden Fall in ein und die gleiche Datei sowohl komprimierte als auch unkomprimierte Daten (Bytes) schreiben. Dazu hatte ich mir schon folgendes Konstrukt überlegt:
Über den Stream gz kann ich jetzt gepackt schreiben und mit doz kann ich ungepackt schreiben.
Was aber bei den Tests auffällt ist, dass sobald ich über den Konstruktor GZIPOutputStream mit dem FileOutputStream verbunden habe, führende Bytes in die Zieldatei geschrieben werden. Hab dann mal recherchiert und gefunden, dass dies wohl eine Checksumme für die gepackte Datei ist.
Da wir sowohl unkomprimiert als auch komprimiert schreiben, ist das mit der Checksumme natürlich nonsens und störend.
Gibts ne Möglichkeit Daten zu packen und keine Checksumme zu schreiben?
Gruß an die Gemeinde
McD
hätte da mal wieder eine Frage an die Java-Gurus unter Euch.
Ich muss für meine Anwendung eine Klasse schreiben, die Daten exportiert für eine externe, in C++ geschriebene Anwendung.
Arbeite da mit den Leuten "der anderen Seite" zusammen und wir sind noch bei den Grundlangen.
In der Datei werden dann Integer, Longs und Strings abgelegt. Das ganze soll unten letzten Endes byteorientiert in die Datei geschrieben werden, da es zwischen C und Java noch Umwandlungen bedarf (Stichwort Big und Little Endian). Das ist aber jetzt hier noch nicht von Belang.
Die Klasse muss aber auf jeden Fall in ein und die gleiche Datei sowohl komprimierte als auch unkomprimierte Daten (Bytes) schreiben. Dazu hatte ich mir schon folgendes Konstrukt überlegt:
Code:
fos = new FileOutputStream(fName);
gz = new GZIPOutputStream(fos);
doz = new DataOutputStream(fos);
Über den Stream gz kann ich jetzt gepackt schreiben und mit doz kann ich ungepackt schreiben.
Was aber bei den Tests auffällt ist, dass sobald ich über den Konstruktor GZIPOutputStream mit dem FileOutputStream verbunden habe, führende Bytes in die Zieldatei geschrieben werden. Hab dann mal recherchiert und gefunden, dass dies wohl eine Checksumme für die gepackte Datei ist.
Da wir sowohl unkomprimiert als auch komprimiert schreiben, ist das mit der Checksumme natürlich nonsens und störend.
Gibts ne Möglichkeit Daten zu packen und keine Checksumme zu schreiben?
Gruß an die Gemeinde
McD