tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
340
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    mcdroemmel mcdroemmel ist offline Mitglied Bronze
    Registriert seit
    Mar 2009
    Beiträge
    26
    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:

    Code :
    1
    2
    3
    
            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
     

  2. #2
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Probier doch mal das ganze erst in zwei getrennte ByteArrays für komprimiert und undkomprimiert zu schreiben (ByteArrayOutputStream) und dann die Arrays in die Datei.
     

  3. #3
    mcdroemmel mcdroemmel ist offline Mitglied Bronze
    Registriert seit
    Mar 2009
    Beiträge
    26
    Hi zeja,

    das geht leider nicht denn es wird nicht einfach nacheinander gepackt oder ungepackt geschrieben.
    Es läuft mehr so.

    <---- ungepackte Daten ----><---- gepackte Daten ----><--- ungepackt----><--- gepackt --->

    usw.

    Gruß
    McD
     

Ähnliche Themen

  1. Daten aus DB in XML-Datei schreiben
    Von BlazZ im Forum Java
    Antworten: 28
    Letzter Beitrag: 20.08.09, 16:49
  2. Antworten: 1
    Letzter Beitrag: 24.01.07, 18:19
  3. Antworten: 6
    Letzter Beitrag: 27.10.05, 17:05
  4. Daten ans ende einer Datei schreiben
    Von zerix im Forum Java
    Antworten: 1
    Letzter Beitrag: 15.10.05, 11:38
  5. Daten in txt-Datei schreiben, nur andersherum
    Von Robert Steichele im Forum PHP
    Antworten: 3
    Letzter Beitrag: 11.10.04, 10:25