Eigenen OutputStream schreiben und verwenden

Angel4585

Bekanntes Mitglied
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:
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;
}
Und so wende ich den an:

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.
 

Angel4585

Bekanntes Mitglied
ursprünglich wollte ich binärdaten über php an meine datenbank schicken und später aufm gleichen weg wieder auslesen, blöderweise klappt das mit binärdaten nicht, die zeichen werden immer irgendwie verändert weshalb ich jetz zeichen generieren möchte die man sicher lesen und schreiben kann.

ausserdem interessiert mich das jetzt wie das geht :D
 

Angel4585

Bekanntes Mitglied
Danke für den Tipp, hab das mal angeschaut aber ich weis nicht wie ich da mit Streams arbeiten kann, Base64EncoderStream geht irgendwie nicht, da kam die Meldung dass das veraltet sei oder so.

Hab jetzt meinen Denkfehler gefunden, ich muss meinen Hex Stream vor dem gzip-Stream bzw direkt nach dem FileOutputStream einbinden damit ich in der Datei die Zeichen 0-F sehe:
Java:
    public static void saveMatchToXMLFile(SFMatch match, String filename) throws IOException {
        FileOutputStream fos = new FileOutputStream(filename);
        SFHexOutputStream hex = new SFHexOutputStream(fos);
        GZIPOutputStream gos = new GZIPOutputStream(hex);
        saveMatchToStream(match, gos);
        gos.close();
        hex.close();
        fos.close();
    }

Jetzt habe ich aber ein seltsames Problem: Die write-Methode bekommt einen Negativen Wert übergeben, aber ich kann dann beim einlesen keinen negativen auslesen und in der read-Methode zurückgeben, da wird auch wieder gemeckert weil der Wert negativ ist.
 

XHelp

Top Contributor
hm?
Wenn du einen negativen Wert bekommst, solltest du eine ArrayIndexOutOfBounds expection bekommen nach deinem Code...
 

Angel4585

Bekanntes Mitglied
Hab ich auch bekommen, hab aber dann einfach den Wert immer um 128 erhöht, dann gings.
Ich gestehe ich weis nicht warum da ein negativer Wert kommt,Zeichen sollten doch alle positive Werte haben oder nicht?

Ich habe jetzt darauf spekuliert dass mir der Zahlenbereich -128 - 127 übergeben wird und ich dachte dann ich könnte einfach beim einlesen wieder den Wert um 128 runterzählen.
 

Angel4585

Bekanntes Mitglied
ok,hab jetzt anstatt um 128 hochzuzählen einfach UND verknüpft mit 0xff, jetzt wird richtig gelesen und geschrieben.
Jetzt muss ich das mit dem HTTP hinbekommen, aber das ist dann in dem andern Thread im Netzwerkforum
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Addons im eigenen Programm Allgemeine Java-Themen 1
E Eigenen "Aufzählungstyp" erstellen - mit enum ? Allgemeine Java-Themen 18
S Parametrisierte jUnit 5-Tests mit eigenen Datentypen/Klassen-Objekten als Test-Parameter Allgemeine Java-Themen 0
dereki2000 Eigenen Zeichensatz benutzen Allgemeine Java-Themen 7
B JAVA Prozesse in einer eigenen Anwendung laufen lassen Allgemeine Java-Themen 9
J Java eigenen Button programmieren (ob Cursor im Rechteck ist oder nicht..../button pressed or not) Allgemeine Java-Themen 6
K Problem: Java-Klasse mit mehreren Threads als eigenen Prozess starten Allgemeine Java-Themen 3
C Bufferoverflow beim eigenen simpeln Programm Allgemeine Java-Themen 4
F Grundrechenarten mit eigenen Typen Allgemeine Java-Themen 9
D Eigenen Objekt Pool Allgemeine Java-Themen 15
D eigenen eventListener Allgemeine Java-Themen 5
X Duplikate aus eigenen Datentypen entfernen Allgemeine Java-Themen 14
H2SO3- jar soll eigenen namen(pfad) finden Allgemeine Java-Themen 12
R Eigenen Comparator schreiben ? Allgemeine Java-Themen 10
G Kennt jemand gute Produkte zum Lizensieren der eigenen Apps? Allgemeine Java-Themen 6
G Fragen zum eigenen Scheduler Allgemeine Java-Themen 4
thE_29 Java Prozesse der eigenen JVM Allgemeine Java-Themen 12
Escorter Eigenen Listener schreiben Allgemeine Java-Themen 3
C Eigenen Layout Manager schreiben Allgemeine Java-Themen 7
P Klasse über eigenen Classloader laden: SecurityException Allgemeine Java-Themen 11
M eigenen Desktop erzeugen Allgemeine Java-Themen 3
G hat jeder thread seinen eigenen stacktrace? Allgemeine Java-Themen 2
F Eigenen E-MailClient als Standart definieren Allgemeine Java-Themen 7
F "source not found" in eigenem Projekt mit eigenen Allgemeine Java-Themen 2
G ||| Textdateien aus dem eigenen Projekt lesen. Allgemeine Java-Themen 16
D close Problem bei meinem eigenen ToolTip Allgemeine Java-Themen 2
F Dateien auf dem eigenen Server verändern? Allgemeine Java-Themen 3
M Eigenen Datentyp erstellen Allgemeine Java-Themen 4
N Konsole im eigenen Java-Programm Allgemeine Java-Themen 4
N warning beim compilieren des eigenen TableRenderers Allgemeine Java-Themen 5
G Fenster durch eigenen Button minimieren Allgemeine Java-Themen 6
W Mal ein paar generelle Fragen zu InputStream und OutputStream Allgemeine Java-Themen 4
T Input und Outputstream , serielle Schnittstelle Allgemeine Java-Themen 1
Meeresgott Input/Output OutputStream löscht Datei Allgemeine Java-Themen 7
F Jar OutputStream Allgemeine Java-Themen 4
T Outputstream write() gets blocked using RXTX to communicate with HC-05 BT Module Allgemeine Java-Themen 10
D Java Process OutputStream ist null Allgemeine Java-Themen 4
P Input/Output Process.getErrorStream = OutputStream Allgemeine Java-Themen 11
G Auf Kommandozeile über Processobjekt mit Outputstream Allgemeine Java-Themen 3
M rxtx OutputStream sendet falsche werte Allgemeine Java-Themen 3
L Abspeichern von OutputStream Allgemeine Java-Themen 6
E Outputstream an verschiedenen Positionen beschreiben Allgemeine Java-Themen 4
D zip Dateien schreiben mit in/outputstream Allgemeine Java-Themen 10
S OutputStream via POST senden Allgemeine Java-Themen 4
T OutputStream to InputStream Allgemeine Java-Themen 8
W StringBuilder effektiv auf OutputStream schreiben Allgemeine Java-Themen 3
Landei CipherInput/OutputStream-Problem Allgemeine Java-Themen 2
S von OutputStream in InputStream schreiben ohne das es blockiert..? Allgemeine Java-Themen 2
G Double Wert über OutputStream verschicken Allgemeine Java-Themen 2
S outputstream über fileUrl Allgemeine Java-Themen 15
L Problem mit dem OutputStream eines Prozesses Allgemeine Java-Themen 9
G OutputStream to System.out Allgemeine Java-Themen 35
I input-/outputstream Allgemeine Java-Themen 6
Junktyz In Writer und Outputstream wird teilweise nicht geschrieben Allgemeine Java-Themen 3
reibi FileOutputStream aus OutputStream erstellen Allgemeine Java-Themen 7
H Problem mit OutputStream Allgemeine Java-Themen 5
T OutputStream - Prozente ermitteln Allgemeine Java-Themen 3
T OutputStream - Event bei Byte-Fluss Allgemeine Java-Themen 5
A Inputstream in Outputstream umleiten Allgemeine Java-Themen 7
D Cipher(In)OutputStream Allgemeine Java-Themen 3
R Ladebalken für einen Outputstream. Allgemeine Java-Themen 10
J Binärdateien mit Input/Outputstream lesen und schreiben Allgemeine Java-Themen 3
m@nu Schreibschutz entfernen und OutputStream öffnen Allgemeine Java-Themen 6
T Problem mit Outputstream? Allgemeine Java-Themen 2
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
Calli11 Was muss ich hier in die Main schreiben, damit das Programm ausgeführt wird? Allgemeine Java-Themen 4
_user_q Eingegebenen Text wiederholt schreiben lassen Allgemeine Java-Themen 9
_user_q JavaFX Robot alle Unicode-Zeichen schreiben lassen können Allgemeine Java-Themen 12
curranux Ausgabe als Textdatei schreiben. Allgemeine Java-Themen 2
B Wie kann ich mein 8 Klassen Gebilde objektorientierter schreiben? Allgemeine Java-Themen 114
Y Wie sinnvolle unit tests schreiben Allgemeine Java-Themen 29
O Test schreiben mit Äquivalenzklassen (Aufgabe Prüfung) Allgemeine Java-Themen 9
S Programm schreiben, das mir aufgrund von Schlagwörtern, die ich im Internet suche, relevante Themen sofort anzeigt. Allgemeine Java-Themen 1
H In jar Resources schreiben? Allgemeine Java-Themen 6
O Wie kann ich in Apache POI (Excel Dateien schreiben) Datumszellen in Excel erzeugen Allgemeine Java-Themen 6
Zrebna Wieviele Testfälle muss man hier schreiben? (Software Engineering) Allgemeine Java-Themen 13
B .txt Datei erstellen und auslesen bzw. schreiben Allgemeine Java-Themen 6
S File lesen und schreiben Java 6 Allgemeine Java-Themen 2
L Erste Schritte Ausdruck schöner schreiben? Allgemeine Java-Themen 8
G Excel File öffnen, in Zelle schreiben, abspeichern Allgemeine Java-Themen 6
S Kann ich eine Methode schreiben die alle Arten von funktionalen Interfaces akzeptiert..? Allgemeine Java-Themen 21
ralfb1105 Blöcke aus Datei filtern/suchen und in neue Datei schreiben Allgemeine Java-Themen 10
D HTTP Http-Link mittels GUI schreiben Allgemeine Java-Themen 5
M In Textdatei schreiben Allgemeine Java-Themen 3
S Input/Output Beste Möglichkeit einen String in einen Datei zu Schreiben Allgemeine Java-Themen 2
Aruetiise " in Datei schreiben Allgemeine Java-Themen 2
D Möglichkeit mit GAE eine Table auszulesen und eine csv zu schreiben Allgemeine Java-Themen 22
K Zusammenfassungen schreiben Allgemeine Java-Themen 2
OnDemand Desktop-Applikation schreiben, wie daten persistent? Allgemeine Java-Themen 9
KeVoZ_ Nacheinander folgende Strings in Textdokument auf neue Zeile schreiben Allgemeine Java-Themen 6
MiMa Log4j in Dateien mit eigenem Namen schreiben Allgemeine Java-Themen 3
A 2D-Grafik Text in ein Bild schreiben Allgemeine Java-Themen 11
M Makrocode von OO in Java schreiben Allgemeine Java-Themen 5
B Animierte Klasse schreiben - Wie? Allgemeine Java-Themen 9
X NetBeans Bilder und andere Dateien ins .jar schreiben und wieder aus .jar lesen Allgemeine Java-Themen 6
D Daten in MySQL-Datenbank schreiben Allgemeine Java-Themen 13
R Signatur von Methoden in eine Datei schreiben? Allgemeine Java-Themen 4
F Fehler in Zeile in Log schreiben Allgemeine Java-Themen 6
F Lesen effizienter als schreiben? Allgemeine Java-Themen 4
H jid3lib nach schreiben keine Tags im Folder angezeigt Allgemeine Java-Themen 1

Ähnliche Java Themen


Oben