Was ist der Unterschied zwischen Java-Streams?
Nov 14, 2019 am 09:36 AMAlle Daten im Programm werden in Form von Streams übertragen oder gespeichert. Wenn das Programm Daten ben?tigt, muss es den Eingabestream verwenden, um die Daten zu lesen, und wenn das Programm welche ben?tigt Beim Speichern der Daten wird der Ausgabestream verwendet.
Die Eingabe und Ausgabe im Programm werden in Form von Streams gespeichert, und was in den Streams gespeichert wird, sind eigentlich Byte-Dateien.
Byte-Stream und Zeichen-Stream
Es gibt zwei Hauptkategorien von Betriebsdateiinhalten im java.io-Paket: Byte-Stream und Zeichen-Stream, die beide geteilt sind in Eingabe- und Ausgabeoperationen. Die Ausgabe von Daten in einem Byte-Stream erfolgt haupts?chlich mit OutputStream und die Eingabe erfolgt mit InputStream. Die Ausgabe in einem Zeichen-Stream erfolgt haupts?chlich mit der Writer-Klasse und Eingabestreams haupts?chlich mit der Reader-Klasse. (Diese vier sind abstrakte Klassen)
Java bietet ein Paket für Eingabe- und Ausgabefunktionen, Java.io, einschlie?lich:
InputStream, OutputStream, Reader, Writer
InputStream und OutputStream sind beide für Byte-Streams konzipiert und werden haupts?chlich zur Verarbeitung von Bytes oder Bin?robjekten verwendet.
Reader und Writer sind für Zeichenstr?me konzipiert (ein Zeichen belegt zwei Bytes) und werden haupts?chlich zur Verarbeitung von Zeichen oder Zeichenfolgen verwendet.
Die Zeichenstrom-Verarbeitungseinheit ist ein 2-Byte-Unicode-Zeichen, das mit Zeichen, Zeichenarrays bzw. Zeichenfolgen arbeitet, w?hrend die Bytestrom-Verarbeitungseinheit 1 Byte gro? ist und mit Bytes und Byte-Arrays arbeitet. Daher wird der Zeichenstrom durch die Java Virtual Machine gebildet, die Bytes in 2-Byte-Unicode-Zeichen umwandelt, sodass mehrere Sprachen besser unterstützt werden! Wenn es sich um Audiodateien, Bilder und Lieder handelt, ist es besser, Byte-Streams zu verwenden. Wenn es sich um Chinesisch (Text) handelt, ist es besser, Zeichen-Streams zu verwenden.
Alle Dateien werden in Bytes gespeichert, nicht die Zeichen der Datei, sondern die Zeichen werden zuerst in Bytes kodiert und dann werden diese Bytes auf der Festplatte gespeichert. Beim Lesen einer Datei (insbesondere einer Textdatei) wird diese ebenfalls Byte für Byte gelesen, um eine Bytefolge zu bilden.
Der Byte-Stream kann für jede Art von Objekt verwendet werden, einschlie?lich bin?rer Objekte, w?hrend der Zeichen-Stream nur Zeichen oder Zeichenfolgen verarbeiten kann. 2. Der Byte-Stream bietet die Funktion, jede Art von E/A-Vorgang zu verarbeiten, kann jedoch keine Handles durchführen Unicode-Zeichen direkt und Zeichenstr?me reichen vollkommen aus.
Byte-Stream ist der grundlegendste, alle Unterklassen von InputStrem und OutputStream werden haupts?chlich zur Verarbeitung von Bin?rdaten verwendet. Er wird in Bytes verarbeitet, aber in Wirklichkeit sind viele Daten Text und das Konzept des Zeichenstroms Es wird vorgeschlagen, dass die Verarbeitung gem?? der Codierung der virtuellen Maschine erfolgt, d. h. der Zeichensatz wird durch InputStreamReader und OutputStreamWriter in Beziehung gesetzt W?hrend der Entwicklung auftretende Fehler werden tats?chlich durch die Inkonsistenz bei der Konvertierung zwischen Zeichenstr?men und Bytestr?men verursacht.
Der Rückgabetyp der read()-Methode der Reader-Klasse ist int: das gelesene Zeichen als Ganzzahl (entspricht 16 Bits in zwei Bytes) im Bereich von 0 bis 65535 (0x00-0xffff), wenn Wenn das Ende des Streams erreicht ist, wird -1 zurückgegeben.
Obwohl read() von inputStream auch int zurückgibt, gibt es einen int-Byte-Wert im Bereich von 0 bis 255 zurück, da diese Klasse auf Byte-Streams ausgerichtet ist und ein Byte 8 Bits belegt. Wenn keine Bytes verfügbar sind, weil das Ende des Streams erreicht wurde, wird der Wert -1 zurückgegeben. Daher müssen Werte, die nicht durch 0-255 dargestellt werden k?nnen, über einen Zeichenstrom gelesen werden! Zum Beispiel chinesische Schriftzeichen.
php Chinesische Website, eine gro?e Anzahl kostenloser Java-Einführungs-Tutorials, willkommen zum Online-Lernen!
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Java-Streams?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Pre-Formancetartuptimemoryusage, QuarkusandmicronautleadduToCompile-Time-foringandgraalvSupport, WithQuarkusofttenperformLightBetterin serverloser Szenarien.2. Thyvelopecosystem,

HTTP-Protokoll Middleware in Go kann Anforderungsmethoden, Pfade, Client-IP und zeitaufw?ndiges Aufzeichnen aufzeichnen. 1. Verwenden Sie http.Handlerfunc, um den Prozessor zu wickeln, 2. Nehmen Sie die Startzeit und die Endzeit vor und nach dem Aufrufen als n?chstes auf. Der vollst?ndige Beispielcode wurde überprüft, um auszuführen und eignet sich zum Starten eines kleinen und mittelgro?en Projekts. Zu den Erweiterungsvorschl?gen geh?ren das Erfassen von Statuscodes, die Unterstützung von JSON -Protokollen und die Nachverfolgung von ID -IDs.

Durch die Auswahl des richtigen HTMlinput -Typs kann die Datengenauigkeit verbessert, die Benutzererfahrung verbessert und die Benutzerfreundlichkeit verbessert werden. 1. W?hlen Sie die entsprechenden Eingabetypen gem?? dem Datentyp aus, z. B. Text, E -Mail, Tel, Nummer und Datum, die automatisch überprüft und an die Tastatur anpassen k?nnen. 2. Verwenden Sie HTML5, um neue Typen wie URL, Farbe, Reichweite und Suche hinzuzufügen, die eine intuitivere Interaktionsmethode bieten k?nnen. 3.. Verwenden Sie Platzhalter und erforderliche Attribute, um die Effizienz und Genauigkeit der Formulierung zu verbessern. Es sollte jedoch beachtet werden, dass der Platzhalter das Etikett nicht ersetzen kann.

GradleStheBetterChoiceFormostnewProjectsDuetoitSuperiorFlexibilit?t, Leistung und ModerntoolingSupport.1.GRADLE'SGROOVY/KOTLINDSLISMORECONCISEANDEIPRESSIVETHANMANMANBOSEXML.2.GRAGRECONCISEANDEPRPRESSIVETHANMAVENSVOSEXML.2.

Die Verwendung der OpenCSV -Bibliothek ist die beste Wahl zum Lesen von CSV -Dateien. Es kann komplexe Situationen bew?ltigen und mehrere Merkmale unterstützt. 2. Für einfache CSV-Dateien k?nnen Sie Javas integriertes BufferedReader in Kombination mit Split-Methode verwenden. 3. Wenn Sie eine flexiblere Formatsteuerung ben?tigen oder Apache -Komponenten verwendet haben, k?nnen Sie Apache CommonsCSV ausw?hlen. OpenCSV wird für die Einfachheit, Robustheit und die F?higkeit, CSV -Probleme in realen Szenarien zu l?sen, empfohlen.

Zun?chst checkifthefnkeysettingIssinterferingbyingbothThevolumeKeyaloneAndfn VolumeKey, thentogglefnlockwithfn EscifAvailable

Verwenden Sie die Methode .equals (), um den String -Inhalt zu vergleichen, da == nur Objektreferenzen als Inhalt vergleichen; 1. Verwenden Sie .Equals (), um die Zeichenfolgenwerte gleicherma?en zu vergleichen; 2. Verwenden Sie .EqualSignoreCase (), um das Ignorieren zu vergleichen; 3. verwenden. Compareto (), um Zeichenfolgen in der W?rterbuchreihenfolge zu vergleichen, wobei 0, negative oder positive Zahlen zurückgegeben werden; V. 5. Objekte verwenden. Ausgleich () oder Safe Call -Methode, um Null -Zeichenfolgen zu verarbeiten, um Null -Zeiger -Ausnahmen zu vermeiden. Kurz gesagt, Sie sollten vermeiden, == für String -Inhaltsvergleiche zu verwenden, es sei denn, es ist ausdrücklich erforderlich, zu überprüfen, ob sich das Objekt in der Phase befindet.

Die Verwendung von String.Join () (Java8) ist die am einfachsten empfohlene Methode zum Anschlie?en von String -Arrays. Geben Sie einfach den Trennzeichen direkt an. 2. Für alte Versionen von Java oder wenn mehr Kontrolle ben?tigt wird, k?nnen Sie StringBuilder verwenden, um manuell zu durchqueren und zu splei?en. 3.. Stringjoiner eignet sich für Szenarien, die flexiblere Formate wie Pr?fixe und Suffixe erfordern. V. Zusammenfassend sollte die Methode String.Join () in den meisten F?llen bevorzugt werden, wenn Java8 und h?her verwendet wird.
