Das Ziel von InputStreamund OutputStreamist es, verschiedene Arten der Eingabe und Ausgabe zu abstrahieren: Ob der Stream eine Datei, eine Webseite oder der Bildschirm ist, sollte keine Rolle spielen. Alles, was zählt, ist, dass Sie Informationen vom Stream empfangen (oder Informationen in diesen Stream senden).
InputStream wird für viele Dinge verwendet, aus denen Sie lesen.
OutputStream wird für viele Dinge verwendet, an die Sie schreiben.
Hier ist ein Beispielcode. Es geht davon aus, dass InputStream instrund OutputStream osstrbereits erstellt wurden:
int i;while((i = instr.read())!=-1){
osstr.write(i);}
instr.close();
osstr.close();
@KorayTugay Ein Stream wird im Allgemeinen als Zeichensatz definiert. Genauer gesagt wird mehr als ein Bit oder Zeichen als Stream bezeichnet.
Gowtham Gopalakrishnan
14
Mehr als ein Zeichen ist auch String. Was unterscheidet Stream von String?
Prajeet Shrestha
Ich denke, ein Stream besteht nur aus Nullen und Einsen, nicht aus Zeichen.
Smilyface
93
InputStream wird zum Lesen verwendet, OutputStream zum Schreiben. Sie sind als Dekorateure miteinander verbunden, sodass Sie alle Arten von Daten aus allen Arten von Quellen lesen / schreiben können.
Sie können beispielsweise primitive Daten in eine Datei schreiben:
Sie können andere Arten von Streams verwenden, um das Lesen / Schreiben zu verbessern. Sie können beispielsweise einen Puffer für die Effizienz einführen:
Für die meisten Eingabestreams gibt es auch einen Ausgabestream. Sie können Ihre eigenen Streams zum Lesen / Schreiben spezieller Dinge definieren und es gibt komplexe Streams zum Lesen komplexer Dinge (zum Beispiel gibt es Streams zum Lesen / Schreiben des ZIP-Formats).
Ein Programm verwendet einen Eingabestream, um Daten aus einer Quelle einzeln zu lesen:
Ein Programm verwendet einen Ausgabestream, um Daten einzeln an ein Ziel zu schreiben:
Die oben abgebildete Datenquelle und das Datenziel können alles sein, was Daten enthält, generiert oder verbraucht. Dies umfasst natürlich Festplattendateien , aber eine Quelle oder ein Ziel kann auch ein anderes Programm, ein Peripheriegerät, ein Netzwerk-Socket oder ein Array sein .
Sie lesen aus einem InputStream und schreiben in einen OutputStream.
Angenommen, Sie möchten eine Datei kopieren. Sie würden einen FileInputStream zum Lesen aus der Quelldatei und einen FileOutputStream zum Schreiben in die neue Datei erstellen.
Wenn Ihre Daten ein Zeichenstrom sind, können Sie einen FileReader anstelle eines InputStream und einen FileWriter anstelle eines OutputStream verwenden, wenn Sie dies bevorzugen.
InputStream input =...// many different typesOutputStream output =...// many different typesbyte[] buffer =newbyte[1024];int n =0;while((n = input.read(buffer))!=-1)
output.write(buffer,0, n);
input.close();
output.close();
OutputStream ist eine abstrakte Klasse, die das Schreiben von Ausgaben darstellt. Es gibt viele verschiedene OutputStream-Klassen, die bestimmte Dinge ausschreiben (z. B. den Bildschirm oder Dateien oder Byte-Arrays oder Netzwerkverbindungen usw.). InputStream-Klassen greifen auf dieselben Dinge zu, lesen jedoch Daten von ihnen ein.
Hier ist ein gutes grundlegendes Beispiel für die Verwendung von FileOutputStream und FileInputStream, um Daten in eine Datei zu schreiben und sie dann wieder einzulesen.
Ein Strom ist ein kontinuierlicher Fluss von Flüssigkeit, Luft oder Gas.
Java-Stream ist ein Datenfluss von einer Quelle zu einem Ziel. Die Quelle oder das Ziel kann eine Festplatte, ein Speicher, ein Socket oder andere Programme sein. Die Daten können Bytes, Zeichen oder Objekte sein. Gleiches gilt für C # - oder C ++ - Streams. Eine gute Metapher für Java-Streams ist Wasser, das aus einem Wasserhahn in eine Badewanne und später in einen Abfluss fließt.
Die Daten stellen den statischen Teil des Streams dar; Die Lese- und Schreibmethoden sind der dynamische Teil des Streams.
InputStreamstellt einen Datenfluss von der Quelle dar, der OutputStreameinen Datenfluss in das Ziel darstellt. Schließlich InputStreamund OutputStreamsind Abstraktionen über den Zugriff auf Daten auf niedriger Ebene, wie z. B. C-Dateizeiger.
Stream : In Laienbegriffen ist Stream Daten, der allgemeinste Stream ist eine binäre Darstellung von Daten.
Eingabestream : Wenn Sie Daten aus einer Datei oder einer anderen Quelle lesen, wird als Stream der Eingabestream verwendet. Einfacher ausgedrückt fungiert der Eingabestream als Kanal zum Lesen von Daten.
Ausgabestream : Wenn Sie Daten aus einer Quelle (Datei usw.) lesen und verarbeiten möchten, müssen Sie zuerst die Daten speichern. Der Mittelwert zum Speichern von Daten ist der Ausgabestream.
Ein Ausgabestream bezieht sich im Allgemeinen auf ein Datenziel wie eine Datei oder ein Netzwerk usw. Der Java-Ausgabestream ist ein Ziel, an dem Daten schließlich geschrieben werden und enden
InputStream wird zum Lesen verwendet, OutputStream zum Schreiben. Sie sind als Dekorateure miteinander verbunden, sodass Sie alle Arten von Daten aus allen Arten von Quellen lesen / schreiben können.
Sie können beispielsweise primitive Daten in eine Datei schreiben:
So lesen Sie den schriftlichen Inhalt:
Sie können andere Arten von Streams verwenden, um das Lesen / Schreiben zu verbessern. Sie können beispielsweise einen Puffer für die Effizienz einführen:
Sie können andere Daten wie Objekte schreiben:
Sie können aus anderen verschiedenen Eingabequellen lesen:
Für die meisten Eingabestreams gibt es auch einen Ausgabestream. Sie können Ihre eigenen Streams zum Lesen / Schreiben spezieller Dinge definieren und es gibt komplexe Streams zum Lesen komplexer Dinge (zum Beispiel gibt es Streams zum Lesen / Schreiben des ZIP-Formats).
quelle
Aus dem Java-Tutorial :
Ein Stream ist eine Folge von Daten.
Ein Programm verwendet einen Eingabestream, um Daten aus einer Quelle einzeln zu lesen:
Ein Programm verwendet einen Ausgabestream, um Daten einzeln an ein Ziel zu schreiben:
Beispielcode von Oracle Tutorial:
Dieses Programm verwendet Byte-Streams, um die Datei xanadu.txt in outagain.txt zu kopieren , indem jeweils ein Byte geschrieben wird
Schauen Sie sich diese SE-Frage an, um weitere Details zu erweiterten Charakter-Streams zu erfahren, die Wrapper über Byte-Streams sind:
Byte-Stream und Zeichen-Stream
quelle
Sie lesen aus einem InputStream und schreiben in einen OutputStream.
Angenommen, Sie möchten eine Datei kopieren. Sie würden einen FileInputStream zum Lesen aus der Quelldatei und einen FileOutputStream zum Schreiben in die neue Datei erstellen.
Wenn Ihre Daten ein Zeichenstrom sind, können Sie einen FileReader anstelle eines InputStream und einen FileWriter anstelle eines OutputStream verwenden, wenn Sie dies bevorzugen.
quelle
close
immerflush
es, also nein.OutputStream ist eine abstrakte Klasse, die das Schreiben von Ausgaben darstellt. Es gibt viele verschiedene OutputStream-Klassen, die bestimmte Dinge ausschreiben (z. B. den Bildschirm oder Dateien oder Byte-Arrays oder Netzwerkverbindungen usw.). InputStream-Klassen greifen auf dieselben Dinge zu, lesen jedoch Daten von ihnen ein.
Hier ist ein gutes grundlegendes Beispiel für die Verwendung von FileOutputStream und FileInputStream, um Daten in eine Datei zu schreiben und sie dann wieder einzulesen.
quelle
Java-Stream ist ein Datenfluss von einer Quelle zu einem Ziel. Die Quelle oder das Ziel kann eine Festplatte, ein Speicher, ein Socket oder andere Programme sein. Die Daten können Bytes, Zeichen oder Objekte sein. Gleiches gilt für C # - oder C ++ - Streams. Eine gute Metapher für Java-Streams ist Wasser, das aus einem Wasserhahn in eine Badewanne und später in einen Abfluss fließt.
Die Daten stellen den statischen Teil des Streams dar; Die Lese- und Schreibmethoden sind der dynamische Teil des Streams.
InputStream
stellt einen Datenfluss von der Quelle dar, derOutputStream
einen Datenfluss in das Ziel darstellt. SchließlichInputStream
undOutputStream
sind Abstraktionen über den Zugriff auf Daten auf niedriger Ebene, wie z. B. C-Dateizeiger.quelle
Stream : In Laienbegriffen ist Stream Daten, der allgemeinste Stream ist eine binäre Darstellung von Daten.
Eingabestream : Wenn Sie Daten aus einer Datei oder einer anderen Quelle lesen, wird als Stream der Eingabestream verwendet. Einfacher ausgedrückt fungiert der Eingabestream als Kanal zum Lesen von Daten.
Ausgabestream : Wenn Sie Daten aus einer Quelle (Datei usw.) lesen und verarbeiten möchten, müssen Sie zuerst die Daten speichern. Der Mittelwert zum Speichern von Daten ist der Ausgabestream.
quelle
Ein Ausgabestream bezieht sich im Allgemeinen auf ein Datenziel wie eine Datei oder ein Netzwerk usw. Der Java-Ausgabestream ist ein Ziel, an dem Daten schließlich geschrieben werden und enden
quelle