Mal ein paar generelle Fragen zu InputStream und OutputStream

White_Fox

Top Contributor
Mahlzeit allerseits

Ich hätte mal ein paar grundlegene Fragen zu den beiden Klassen InputStream und OutputStream.
Wann ist deren Verwendung sinnvoll? Verwendung im dem Sinne, daß ich eine eigene Klasse schreibe die man mit Daten füttern und die Daten ausspucken soll.

Der Hintergrund ist, daß ich gerade eine solche Klasse schreibe und ich könnte dieser theoretisch ein Bytearray vor die Füße werfen und auch ein Bytearray ausgeben lassen. Da die Daten aber z.B. in eine Datei geschrieben werden sollen dachte ich mir, wäre die Verwendung von Streams vielleicht klüger.

Jetzt habe ich angefangen den Test zu schreiben und wollte dabei die Daten, die die Klasse liefert, wieder in die Klasse zurückschreiben. Und dabei festgestellt, daß es eine Scheißidee ist, aus einem OutputStream in einen InputStream zu schreiben. Ich meine zwar irgendwann mal in irgendeinem Tutorial/Lehrbuch gelesen zu haben das Streams ganz toll sind weil man sie einfach zusammenstöpseln kann, aber so richtig will das nicht aufgehen.
 

mihe7

Top Contributor
Zunächst einmal sind Input- und Output-Streams Abstraktionen für Datenströme. D. h. über eine einheitliche Schnittstelle kann die Ein-/Ausgabe behandelt werden, bei der das Byte der zentrale Datentyp ist. Das hat zunächst einmal den Vorteil, dass sich Ausgabeströme kombinieren lassen (analog Eingabeströme), so dass sich z. B. Pufferung oder Verschlüsselung beliebiger Datenströme durch einfache Komposition erzielen lässt.

Dadurch kann man z. B. auf der Kommandozeile die Ausgabe eines Programms umleiten. Nehmen wir mal sed an:

sed -e ${PATTERN} < input.txt > output.txt

Was hier nicht sofort deutlich wird: man hat damit eine Form der Kommunikation über verschiedene Prozesse hinweg, weil es völlig egal ist, womit input.txt und output.txt erzeugt wurden und mit welchem Tool die Dateien verarbeitet werden.

Man kann also z. B. erstmal mit sed Leerzeilen löschen und anschließend

wc -l < output.txt

ausführen, um die Zahl der Zeilen zu erhalten.

Statt über Dateien zu gehen, gibt es die Möglichkeit, eine Pipe als Kommunikationskanal zu verwenden. Ein Prozess schreibt in die Pipe, der andere Prozess liest aus der Pipe:
cat input.txt | sed -e ${PATTERN} | wc -l

Die Möglichkeit gibt es mit PipedOutputStream und PipedInputStream auch in Java, um Threads über eine Pipe kommunizieren zu lassen. Ein Thread schreibt in die PipedOutputStream, der andere liest aus der PipedInputStream.

Wenn Du keine Threads willst, kannst Du aber auch einfach erstmal in einen ByteArrayOutputStream schreiben und anschließend das byte-Array über einen ByteArrayInputStream wieder lesen.
 

mihe7

Top Contributor
Wie gesagt: entweder lässt Du in einen ByteArrayOutputStream schreiben, holst Dir das byte-Array und lässt aus dem ByteArrayInputStream lesen, oder aber Du verwendest zwei Threads und lässt einen davon in den PipedOutputStream schreiben, den anderen vom PipedInputStream lesen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Swing GUI / Webapp..... benötige ein paar Tips / Ratschläge Allgemeine Java-Themen 18
AGW in Java-Code plötzlich ein paar Wörter in Rot Allgemeine Java-Themen 2
W Ein paar Fragen zu .properties und .css Allgemeine Java-Themen 6
A Neuerungen in Java 8 StreamAPI- Paar fragen Allgemeine Java-Themen 4
E Java wird beendet nach paar Sekunden Allgemeine Java-Themen 14
Z Eclipse hängt sich alle paar Sekunden auf (Keine Rückmeldung). Allgemeine Java-Themen 4
D Ein paar allgemeine Fragen zu Java Allgemeine Java-Themen 19
G HTTP key-value-paar Allgemeine Java-Themen 8
T Habt ihr mir ein paar Lerntipps für Java? Allgemeine Java-Themen 5
A nur paar Ansätze Allgemeine Java-Themen 9
M ein paar fragen über JBoss und Catalina Allgemeine Java-Themen 7
S Paar Infos für meine Dokumentation. Allgemeine Java-Themen 5
8u3631984 Generelle Log4j.xml für alle Module Allgemeine Java-Themen 5
B Generelle Frage bei einer Webanwendung / Reduzierung von DB Abfragen Allgemeine Java-Themen 1
O Thread Generelle Frage Allgemeine Java-Themen 2
Zrebna Fragen zu Testabdeckungs-Metriken Allgemeine Java-Themen 4
MarvinsDepression Unbekanntes Zeichen in fremden Code wirft Fragen auf Allgemeine Java-Themen 4
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
K BlueJ - Fragen zu dem Spiel Pacman (Nachprogrammieren) Allgemeine Java-Themen 141
V Ich hätte 2 Fragen Allgemeine Java-Themen 5
ME2002 Fragen aus einer Java Klausur Allgemeine Java-Themen 67
H Fragen zur Kraken Api Allgemeine Java-Themen 1
nonickatall Klassen Grundsätzliche Fragen zu geplanter Programmstruktur Allgemeine Java-Themen 5
X Fragen zur Javamail API und Gmail Allgemeine Java-Themen 4
T Fragen bezgl. Lambdas Allgemeine Java-Themen 20
X Collections Fragen zu gleichen Elementen in TreeSet Allgemeine Java-Themen 35
temi Fragen zur Software-Architektur Allgemeine Java-Themen 123
M Diverse Design-Fragen Allgemeine Java-Themen 6
J 2 Fragen zur Vererbung Allgemeine Java-Themen 5
H Java FX 2 Fragen um Programm in mehrere sprachen zu übersetzen in Gluon Framwork Allgemeine Java-Themen 3
M Fragen beantworten über Textfeldeingabe Allgemeine Java-Themen 5
D Grundsätzliche Fragen zum Heap Space Allgemeine Java-Themen 12
J Allgemeine Fragen zu Vererbung Allgemeine Java-Themen 1
M Allgemeine Fragen meinerseits Allgemeine Java-Themen 4
V Wie kann ich die Fragen mit den anderen Klassen verbinden? Allgemeine Java-Themen 1
J Fragen zu generischer doppelt verketteter Liste (bei fehlendem Grundverständnis) Allgemeine Java-Themen 1
R Es gibt keine dummen Fragen (hab ich mal gehört) Allgemeine Java-Themen 11
T Fragen zum Thread-Thema Allgemeine Java-Themen 4
2 2 Klein Fragen Allgemeine Java-Themen 7
alderwaran .jar Code Signing, User-Keystore und Fragen dazu Allgemeine Java-Themen 0
T Fragen zum Thread-Thema Allgemeine Java-Themen 9
A Java Theorie-Fragen Allgemeine Java-Themen 7
K Java QUIZ-Spiel Fragen und Antworten generieren?! Allgemeine Java-Themen 5
R Socket Fragen zu UDP Allgemeine Java-Themen 1
B Noob-Fragen zu Tablets und PC kompatiblität... Allgemeine Java-Themen 6
L Fragen für Facharbeit: Analyse von Strings in Java Allgemeine Java-Themen 4
R Fragen zu Server + UI Allgemeine Java-Themen 2
U Vier Fragen zu Java Allgemeine Java-Themen 2
H MediaManager Fragen/Probleme Allgemeine Java-Themen 6
D Fragen zum erstellen einer ausführbaren Jar Datei Allgemeine Java-Themen 3
C Polymorphie Fragen zur Annotations von Persistenz Allgemeine Java-Themen 2
O Fragen über Fragen - Bei Änderung XML-Datei -> Anpassung GUI Allgemeine Java-Themen 7
StrikeTom Java Performance Fragen Allgemeine Java-Themen 5
Luk10 Fragen zum ByteBuffer (lwjgl - icons) Allgemeine Java-Themen 2
F Akkumulator Hough-Transformation offene Fragen Allgemeine Java-Themen 4
Luk10 Fragen zu Naming-Conventions Allgemeine Java-Themen 5
Z Einige Fragen Allgemeine Java-Themen 10
T OOP Einige Fragen zu UML-Klassendiagrammen Allgemeine Java-Themen 6
G Einige Fragen zu ResourceBundles Allgemeine Java-Themen 2
S Fragen zu verschiedenen Themen vom JCreator Allgemeine Java-Themen 2
DStrohma Grundsätzliche Fragen zum Aufbau eines komplexeren Programmes Allgemeine Java-Themen 8
Semox Grapheneditor - Allgemeine Fragen zum Logikdesign Allgemeine Java-Themen 3
O kleine Fragen eines Anfängers Allgemeine Java-Themen 2
X Executor fragen ob fertig Allgemeine Java-Themen 13
nrg Swing 2 Fragen zu Swing/AWT Allgemeine Java-Themen 7
K Reflections Fragen Allgemeine Java-Themen 7
S Fragen zum SCJD-Zertifikat Allgemeine Java-Themen 2
M Backend Entwicklung - Konzept fragen Allgemeine Java-Themen 3
E Fragen zu Scala Allgemeine Java-Themen 11
Daniel_L Fragen zu RegEx und URL umwandeln Allgemeine Java-Themen 4
J Diverse Fragen bezüglich Jasper Allgemeine Java-Themen 3
S Fragen zum ShutdownHook Allgemeine Java-Themen 7
V Fragen zu einem Java Browser Allgemeine Java-Themen 7
G Fragen zum eigenen Scheduler Allgemeine Java-Themen 4
M Drag and Drop: 3 Fragen Allgemeine Java-Themen 3
L Einige Fragen zu Java Allgemeine Java-Themen 9
F Linguistische Fragen zu Javadoc bzw. Englisch Allgemeine Java-Themen 4
E Einfache Fragen zu Dateien Allgemeine Java-Themen 7
E Thread Fragen in Verbindung mit Swing Allgemeine Java-Themen 4
M MVC Design Pattern - Verständniss Fragen Allgemeine Java-Themen 3
X Einige Fragen zu Serialisierung Allgemeine Java-Themen 2
H Java Multiplicoice Test (10 Fragen) Allgemeine Java-Themen 11
J Viele Fragen. =) Hoffentlich könnt ihr helfen Allgemeine Java-Themen 9
D Grundsätzliche Fragen zur Grafikdarstellung in Spielen Allgemeine Java-Themen 2
J 2 Fragen zu JMF und eine Rechtsfrage Allgemeine Java-Themen 3
S Viele Fragen eines Umsteigers (von .NET) Allgemeine Java-Themen 6
C LinkedList Fragen Allgemeine Java-Themen 7
P Fragen zur JBuilder und den kosten. Allgemeine Java-Themen 7
reibi JVM fragen welche Apps geladen sind Allgemeine Java-Themen 7
I Fragen zum Internetseiten Einlesen/Auswerten Allgemeine Java-Themen 5
F Paket und Software Design Fragen. Allgemeine Java-Themen 5
S 2 Fragen allgemeine fragen zu final und interface Allgemeine Java-Themen 13
D Allgemeine Fragen zum Speichern Allgemeine Java-Themen 3
F allgemeine Fragen zu Java Allgemeine Java-Themen 9
S Fragen zu 4 speziellen Listen Allgemeine Java-Themen 4
U JFrame, JOptionPane - vor dem Schließen Benutzer fragen Allgemeine Java-Themen 10
I zwei simple fragen Allgemeine Java-Themen 22
G 2 Fragen Allgemeine Java-Themen 7
G Fragen zu ausführbaren JAR Files Allgemeine Java-Themen 23
G Fragen zu JTextField bzw. JTextArea Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben