Datenströme werden in zwei Kategorien unterteilt: 1. Eingabestrom [InputStream], der Eingabestrom kann nur gelesen, aber nicht geschrieben werden, während der Ausgabestrom nur geschrieben, aber nicht gelesen werden kann. 2. Ausgabestream [OutputStream]: Normalerweise wird der Eingabestream im Programm zum Lesen von Daten verwendet, und der Ausgabestream wird zum Schreiben von Daten verwendet, genau wie die Daten in das Programm hinein und aus diesem heraus fließen.
Ein Datenstrom ist eine geordnete Folge von Bytes mit einem Startpunkt und einem Endpunkt. Einschließlich Eingabestream und Ausgabestream.
Datenstrom war ursprünglich ein Konzept, das im Bereich der Kommunikation verwendet wurde und eine Folge digital codierter Signale darstellte, die bei der Übertragung von Informationen verwendet wurden. Dieses Konzept wurde erstmals 1998 von Henzinger in Dokument 87 vorgeschlagen. Er definierte einen Datenstrom als „eine Folge von Daten, die nur einmal in einer vorgegebenen Reihenfolge gelesen werden kann“.
Die Entwicklung von Datenflussanwendungen ist das Ergebnis der folgenden zwei Faktoren:
Detaillierte Daten
kontinuierlich und automatisch große Mengen detaillierter Daten generieren konnten. Diese Art von Daten tauchten zunächst im traditionellen Banken- und Aktienhandelsbereich auf und tauchten später auch in der geologischen Vermessung, Meteorologie, astronomischen Beobachtung usw. auf. Insbesondere das Aufkommen des Internets (Überwachung des Netzwerkverkehrs, Clickstreams) und drahtloser Kommunikationsnetze (Anrufaufzeichnungen) hat eine große Menge an Daten vom Typ Datenfluss erzeugt. Wir haben festgestellt, dass sich die meisten dieser Datentypen auf geografische Informationen beziehen. Dies liegt hauptsächlich daran, dass geografische Informationen eine große Dimension haben und sich leicht so große Mengen detaillierter Daten generieren lassen.
Komplexe Analyse
Erfordert eine komplexe Analyse von Update-Streams nahezu in Echtzeit. Komplexe Datenanalysen in den oben genannten Bereichen (z. B. Trendanalyse, Vorhersage) wurden häufig offline (in Data Warehouses) durchgeführt. Einige neue Anwendungen (insbesondere in den Bereichen Netzwerksicherheit und nationale Sicherheit) sind jedoch sehr zeitkritisch. B. die Erkennung extremer Ereignisse, Betrug, Einbruch, Anomalien im Internet, komplexe Überwachung von Menschenmengen, Verfolgungstrends, explorative Analysen, harmonische Analysen usw. erfordern alle eine Online-Analyse.
Danach erkannte die akademische Gemeinschaft diese Definition grundsätzlich an und einige Artikel modifizierten die Definition auf dieser Grundlage leicht. Beispielsweise glauben S. Guha et al. [88], dass ein Datenstrom „eine geordnete Folge von Punkten ist, die nur einmal oder einige Male gelesen werden kann“, wobei die Einschränkung „ein Durchgang“ in der oben genannten Definition gelockert wird.
Warum wird bei der Verarbeitung von Datenströmen auf die Begrenzung der Anzahl der Datenlesevorgänge Wert gelegt? S. Muthukrishnan [89] wies darauf hin, dass sich der Datenfluss auf „Eingangsdaten bezieht, die mit sehr hoher Geschwindigkeit eintreffen“, sodass die Übertragung, Berechnung und Speicherung von Datenflussdaten schwierig wird. In diesem Fall gibt es nur eine Möglichkeit, die Daten beim ersten Eintreffen zu verarbeiten, und es ist schwierig, zu anderen Zeiten auf die Daten zuzugreifen (da es keine Möglichkeit gibt, die Daten zu speichern).
Kategorie:
Die Art und das Format der Daten sind unterschiedlich und die Verarbeitungsmethoden der Konvektion sind daher auch in der Java-Eingabe unterschiedlich /Ausgabe-Klassenbibliothek. Es gibt verschiedene Stream-Klassen, die Eingabe-/Ausgabe-Streams unterschiedlicher Art entsprechen. In Java. Im io-Paket können die grundlegenden Eingabe-/Ausgabe-Stream-Klassen entsprechend den Datentypen, die sie lesen und schreiben, in zwei Typen unterteilt werden: Byte-Streams und Zeichen-Streams.
Eingabestream und Ausgabestream
Datenströme werden in zwei Kategorien unterteilt: Eingabestream (InputStream) und Ausgabestream (OutputStream). Der Eingabestream kann nur gelesen, aber nicht geschrieben werden, während der Ausgabestream nur geschrieben, aber nicht gelesen werden kann. Typischerweise verwenden Programme Eingabeströme zum Lesen von Daten und Ausgabeströme zum Schreiben von Daten, genau wie Daten in das Programm hinein und aus ihm heraus fließen. Der Datenfluss wird verwendet, um die Eingabe- und Ausgabevorgänge des Programms unabhängig von zugehörigen Geräten zu machen.
Der Eingabestream kann Daten von der Tastatur oder einer Datei abrufen und der Ausgabestream kann Daten an die Anzeige, den Drucker oder eine Datei übertragen.
Gepufferter Stream
Um die Effizienz der Datenübertragung zu verbessern, wird normalerweise ein gepufferter Stream (Buffered Stream) verwendet, dh ein Stream ist mit einem Puffer (Puffer) ausgestattet Dem Speicherblock zum Übertragen von Daten ist ein Puffer zugeordnet. Beim Schreiben von Daten in einen gepufferten Stream sendet das System die Daten nicht direkt an das externe Gerät, sondern an einen Puffer. Der Puffer zeichnet automatisch Daten auf. Wenn der Puffer voll ist, sendet das System alle Daten an das entsprechende Gerät.
Beim Lesen von Daten aus einem gepufferten Stream liest das System die Daten tatsächlich aus dem Puffer. Wenn der Puffer leer ist, liest das System automatisch Daten vom entsprechenden Gerät und liest so viele Daten wie möglich, um den Puffer zu füllen.
Das obige ist der detaillierte Inhalt vonDatenflüsse sind in mehrere Kategorien unterteilt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!