DataOutputStream übergeben

hk

Bekanntes Mitglied
Hallo Forum,
ich möchte binäre Daten (wie in DataOutputStream möglich) in einem Stream?? erstellen und sie dann einer anderen Klasse übergeben welche sie dann auch in eine Datei schreibt. Ich habe die Funktionen write.Int, write.Long, usw. in keinen anderen Stream gefunden.
lg heinz
 

Flown

Administrator
Mitarbeiter
Warum verwendest du dann nicht den DataOutputStream, wenn er genau das macht, dass du benötigst? Oder was ist dein eigentliches Problem (vl. mit einem kleinem Beispiel)?
 

hk

Bekanntes Mitglied
Hallo Flown,
nun nach meinen Kenntnissen wird die Funktion dos.write.Int(99) ja sofort ausgegeben (in eine Datei geschrieben). Das will ich aber nicht, da ich eine zentrale Ausgabemethode habe. Vereinfacht dargestellt schreibe ich alles in einen String und sende diesen zur Ausgabemethode.
 

mrBrown

Super-Moderator
Mitarbeiter
DataOutputStream schreibt in einen anderen OutputStream, nicht direkt in eine Datei.
Wenn du die Daten erst schreiben und dann noch im Programm rumreichen musst, kannst du die mit einem ByteArrayOutputStream in ein byte[] schreiben.
Das ganze in einen String schreiben macht wenig Sinn, binäre Daten sind kein String.


Statt einer "zentralen Ausgabemethode" gibts aber oftmals auch bessere Wege
 

hk

Bekanntes Mitglied
ByteArrayOutputStream realisiert aber die binären Funktionen nicht. Es wird jeweils nur ein Byte des int geschrieben.
Ein besserer Weg wäre interessant.
 

httpdigest

Top Contributor
Java:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
// ... benutze 'dos' um zu schreiben
// ... benutze 'baos' um die geschriebenen Bytes
// (innerhalb des ByteArrayOutputStreams) an andere Methoden zu übergeben.
// Diese können dann baos.toByteArray() aufrufen.
 

mrBrown

Super-Moderator
Mitarbeiter
Ich gebe Datenstrukturen verschiedener Länge und Inhalt in eine Datei aus und möchte nicht für jede Datenstruktur eine Lese-, Schreibmetode erstellen.
Du hast jetzt doch trotzdem, wenn du an jeder Stelle ein DataOutputStream erstellst und dessen Ergebnis weitergibst ;)


Aber wie gesagt: wenn du von der zentralen Methode nicht weg möchtest, lass die entweder einen OutputStream zurückgeben oder gibt der Methoden, die jetzt den DataOutputStream erstellt, einfach einen Stream in den sie schreibt. Bei beiden vermeidest du das überfüssige Array als Buffer
 

hk

Bekanntes Mitglied
Also so würde es funktionieren, aber es scheint nicht optimal zu sein?
Code:
        // Dieser Teil ist in mehreren Varianten vorhanden
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(baos);
        try {
        dos.writeInt(9999);
        dos.writeUTF("Text");
        dos.writeShort(8);
        } catch ( IOException e ) { System.err.println( e ); }
        satzSchreiben(baos);

     // Die zentrale Ausgabe-Methode
    private static void satzSchreiben(ByteArrayOutputStream baos) {
        long fileZeiger = 0l;
        long laenge;
        try {
        RandomAccessFile file = new RandomAccessFile("Test.dat", "rw" );
        fileZeiger = file.length();
        file.seek(fileZeiger);
        file.writeBytes(baos.toString());
        laenge =  (int) (file.getFilePointer() - fileZeiger);
        file.close();
        } catch (IOException e ) {  System.err.println( e );  }

        // Zur Prüfung Satz lesen
        try {
            RandomAccessFile file = new RandomAccessFile("Test.dat", "rw" );
            file.seek(fileZeiger);
            int i = file.readInt();
            String n = file.readUTF();
            short s = file.readShort();
            int c = 1;
             file.close();
        } catch (IOException e ) { System.err.println( e );  } 
    }
 

Flown

Administrator
Mitarbeiter
Warum eigentlich nicht einfach die Standard Java Serialisierung (oder andere Formen wie JAXB/JSON-B) verwenden? Da geht das doch gleich von alleine.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Input/Output DataOutputStream gibt NULL zurück Java Basics - Anfänger-Themen 5
C umlaute mit DataOutputStream schreiben Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
J Argumente in Methoden übergeben Java Basics - Anfänger-Themen 1
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
N Throw an Main Methode übergeben Java Basics - Anfänger-Themen 7
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
S Bildgröße ermitteln & setSize() übergeben Java Basics - Anfänger-Themen 6
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
C Int an andere Klasse übergeben Java Basics - Anfänger-Themen 26
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
sgtcoopa Array übergeben Schleife Java Basics - Anfänger-Themen 0
B Compiler-Fehler Array aus Objekten übergeben Java Basics - Anfänger-Themen 7
C Long value an Stringbuilder übergeben, equals Methode funktioniert nicht Java Basics - Anfänger-Themen 2
E Slider - Wert übergeben und überschreiben Java Basics - Anfänger-Themen 5
S JavaFX - Objekt an neue Stage übergeben Java Basics - Anfänger-Themen 12
G JTable, Zeile auswählen und Ergebnis an Schaltfläche übergeben Java Basics - Anfänger-Themen 4
J Array an Combobox übergeben Java Basics - Anfänger-Themen 5
L Attribute aus Klasse in berechnungs Methode übergeben Java Basics - Anfänger-Themen 1
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
L Methode implementieren, Parameter die übergeben werden sind final Java Basics - Anfänger-Themen 4
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
R Methode zwei Sortierkriterien der Klasse Comparator übergeben Java Basics - Anfänger-Themen 4
NeoLexx Variable für Array wird nicht korrekt übergeben Java Basics - Anfänger-Themen 45
L Objekt an Methode übergeben Java Basics - Anfänger-Themen 4
J Wert zwischen JFrames übergeben Java Basics - Anfänger-Themen 2
A Klassen Datei als Kommandozeilenparameter übergeben Java Basics - Anfänger-Themen 8
T Körper Brechnung - Lokale Variablen in Methoden übergeben Java Basics - Anfänger-Themen 10
L OOP Parameter mit der Draw-Methode übergeben Java Basics - Anfänger-Themen 11
G JTextField per Button speichern und an andere Klasse übergeben Java Basics - Anfänger-Themen 2
M JTable an andere Klasse übergeben Java Basics - Anfänger-Themen 2
B Objekt an neue Stage übergeben? Java Basics - Anfänger-Themen 9
J Input/Output Input als Parameter an Methoden übergeben Java Basics - Anfänger-Themen 23
der_Schokomuffin Hilfe gesucht beim Thema Objekte übergeben! Java Basics - Anfänger-Themen 2
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
E Methode mit Parametern um Objekte zu übergeben Java Basics - Anfänger-Themen 4
E Variable (Vektor) in andere Methode übergeben Java Basics - Anfänger-Themen 4
B Gefülltes Array wird mit nullwerten übergeben Java Basics - Anfänger-Themen 9
R Variablen Variable an FXML-Controller übergeben Java Basics - Anfänger-Themen 4
E JSF - Radiowerte aus xhtml an Bean übergeben Java Basics - Anfänger-Themen 4
M Wie kann ich eine Eingabe im Java-Swing übergeben? Java Basics - Anfänger-Themen 1
M Methode mit Array als Parameter an Main übergeben Java Basics - Anfänger-Themen 1
S Werte in Klasse übergeben Java Basics - Anfänger-Themen 12
L Klassen Objekt aus einer Warteschlange in eine andere übergeben, geht nicht? Java Basics - Anfänger-Themen 6
D Compiler-Fehler Array an Methode übergeben und Wert zurückbekommen Java Basics - Anfänger-Themen 3
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
F Mehrere Instanzen der Klasse A EINER Instanz der Klasse B übergeben Java Basics - Anfänger-Themen 3
M JLabels "verrutschen" beim übergeben von JPanel Java Basics - Anfänger-Themen 2
J Ein Objekt and eine Methode übergeben zwei Schreibweisen? Java Basics - Anfänger-Themen 6
M Array mit eigenem Datentyp probleme beim übergeben Java Basics - Anfänger-Themen 6
P Input/Output Bestimmte Anzahl von Werten in einem Array an Methode übergeben Java Basics - Anfänger-Themen 2
Bluebird209 Array wird nicht an Methode übergeben Java Basics - Anfänger-Themen 7
T Parameter das übergeben wurde ändern? Java Basics - Anfänger-Themen 1
K Klassen Array zwischen Klassen übergeben Java Basics - Anfänger-Themen 2
D Name eines JMenue als Parameter übergeben Java Basics - Anfänger-Themen 20
P Interface Variablen-Inhalte werden nicht übergeben Java Basics - Anfänger-Themen 3
D Erste Schritte Array Werte an Methode übergeben Java Basics - Anfänger-Themen 6
M Methoden Int einer Methode an eine andere Methode übergeben Java Basics - Anfänger-Themen 4
V JButton einer anderen Klasse übergeben? Java Basics - Anfänger-Themen 6
A Die Werte zur Berechnung müssen als Parameter übergeben werden? Java Basics - Anfänger-Themen 7
E Integer und Array übergeben Java Basics - Anfänger-Themen 9
J Werte an eine andere Klasse übergeben Java Basics - Anfänger-Themen 4
J Datentypen Literal überschreitet long-Range, dennoch als long an Variable übergeben Java Basics - Anfänger-Themen 9
M Methoden Datei einlesen und als return übergeben. Java Basics - Anfänger-Themen 8
N Auf TextFeld aus anderer Klasse zugreifen ohne es zu übergeben Java Basics - Anfänger-Themen 3
Viktim Methoden Methode an Methode übergeben Java Basics - Anfänger-Themen 14
OlafHD Einen String an eine Klasse übergeben Java Basics - Anfänger-Themen 2
Silvascus Inhalt eines externen Textdokuments an einen String übergeben Java Basics - Anfänger-Themen 2
T Objekt in ein JLabel der GUI übergeben Java Basics - Anfänger-Themen 3
S JLabel an Methode übergeben Java Basics - Anfänger-Themen 2
Silvascus Array, der mit dem Namen, der per Methode übergeben wird, erstellt wird Java Basics - Anfänger-Themen 5
A Klassen Zahlen einlesen, an Klasse übergeben und Koordinaten ausgeben Java Basics - Anfänger-Themen 1
P Variablen einer Methode in andere Method übergeben Java Basics - Anfänger-Themen 6
D String aus Main in Klasse übergeben Java Basics - Anfänger-Themen 4
J Datentypen Array übergeben Java Basics - Anfänger-Themen 4
Z ArrayList einer anderen Klasse übergeben Java Basics - Anfänger-Themen 8
C Array - Länge dynamisch übergeben Java Basics - Anfänger-Themen 7
boscho87 Objekte übergeben Best Practice Java Basics - Anfänger-Themen 1
M Variable zwischen Klassen übergeben Java Basics - Anfänger-Themen 5
L zwei Variablen gleichzeitig übergeben Java Basics - Anfänger-Themen 6
G Klassenreferenz an Library übergeben Java Basics - Anfänger-Themen 1
A Klassen Werte in den private Bereich übergeben Java Basics - Anfänger-Themen 5
T Integer Wert in andere Methode übergeben Java Basics - Anfänger-Themen 2
A Erste Schritte Passwort an "Internetseite" übergeben. Java Basics - Anfänger-Themen 2
F double[] an andere Methode übergeben Java Basics - Anfänger-Themen 1
J 2 dimensionales Array an andere Methode übergeben? Java Basics - Anfänger-Themen 1
W Wert an andere Klasse übergeben Java Basics - Anfänger-Themen 8
O Klasse übergeben und Methode aufrufen Java Basics - Anfänger-Themen 6
D Compiler-Fehler Objekt in Methode übergeben - ratlos Java Basics - Anfänger-Themen 4
I Java Eingabe aus einer anderen Klasse in eine andere an Konstruktor übergeben Java Basics - Anfänger-Themen 4
I Klassen Integer von BL in GUI übergeben | Fehler Java Basics - Anfänger-Themen 4
T Variable übergeben Fehler Java Basics - Anfänger-Themen 3
T Variable übergeben Java Basics - Anfänger-Themen 2
P Methoden ArrayList übergeben Java Basics - Anfänger-Themen 2
M Klasse als Parameter übergeben Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben