In diesem Artikel werden hauptsächlich relevante Informationen vorgestellt, die den Unterschied zwischen Zeichenstrom und Bytestrom in Java erklären. Freunde, die sie benötigen, können sich auf
Der Unterschied zwischen Zeichenstrom und Bytestrom in Java
1. Was ist ein Stream?
Ein Stream in Java ist eine Abstraktion einer Bytesequenz, aber jetzt fließt er in Wasserpfeife Darin ist kein Wasser mehr, sondern eine Folge von Bytes. Wie der Wasserfluss hat auch ein Stream in Java eine „Flussrichtung“. Ein2. Byte-Stream
Die grundlegendste Einheit der Byte-Stream-Verarbeitung in Java ist ein einzelnes Byte, das normalerweise zur Verarbeitung von Binärdaten verwendet wird. Die beiden grundlegendsten Bytestream-Klassen in Java sind InputStream und OutputStream, die den grundlegenden Eingabebytestream bzw. Ausgabebytestream darstellen. Sowohl die InputStream-Klasse als auch die OutputStream-Klasse sindabstrakte Klassen. Bei der tatsächlichen Verwendung verwenden wir normalerweise eine Reihe ihrer Unterklassen, die in der JavaKlassenbibliothek bereitgestellt werden. Nehmen wir die InputStream-Klasse als Beispiel, um den Byte-Stream in Java einzuführen
Die InputStream-Klasse definiert eine grundlegende Lesemethode zum Lesen von Bytes aus dem Byte-Stream. Die Definition dieser Methode lautet wie folgt:public abstract int read() throws IOException;
public int read(byte b[]) throws IOException { return read(b, 0, b.length); }
public int read(byte b[], int off, int len) throws IOException { if (b == null) { throw new NullPointerException(); } else if (off < 0 || len < 0 || len > b.length - off) { throw new IndexOutOfBoundsException(); } else if (len == 0) { return 0; } int c = read(); if (c == -1) { return -1; } b[off] = (byte)c; int i = 1; try { for (; i < len ; i++) { c = read(); if (c == -1) { break; } b[off + i] = (byte)c; } } catch (IOException ee) { } return i; }
3. Zeichenstrom
Die grundlegendste Einheit der Zeichenstromverarbeitung in Java ist die Unicode-Codeeinheit (Größe 2 Bytes), die normalerweise zur Textverarbeitung verwendet wird Daten. Das sogenannte Unicode-Codeelement ist eine Unicode-Codeeinheit im Bereich von 0x0000 bis 0xFFFF. Jede Zahl im obigen Bereich entspricht einem Zeichen. Der Typimport java.io.FileWriter; import java.io.IOException; public class FileWriterDemo { public static void main(String[] args) { FileWriter fileWriter = null; try { try { fileWriter = new FileWriter("demo.txt"); fileWriter.write("demo"); } finally { fileWriter.close(); } } catch (IOException e) { e.printStackTrace(); } } }
Editor WinHex, um den Inhalt von demo.txt anzuzeigen:
Wie Sie auf dem Bild oben sehen können, ist die von uns geschriebene „Demo“ als „64 65 6D 6F“ codiert, aber wir haben die Codierungsmethode im obigen Code nicht explizit angegeben. Tatsächlich wird sie verwendet, wenn wir dies nicht tun Spezifizieren ist die Standardzeichenkodierung des Betriebssystems zum Kodieren der Zeichen, die wir schreiben möchten. Da der Zeichenstrom vor der Ausgabe tatsächlich die Konvertierung der Unicode-Codeelementsequenz in die Bytesequenz der entsprechenden Codierungsmethode abschließen muss, verwendet er den Speicherpuffer zum Speichern der konvertierten Bytesequenz und wartet danach Wenn die Konvertierung abgeschlossen ist, werden sie zusammen auf die Festplattendatei geschrieben.4. Der Unterschied zwischen Zeichenstrom und Bytestrom
Nach der obigen Beschreibung können wir erkennen, dass sich der Hauptunterschied zwischen Byte-Stream und Zeichen-Stream in den folgenden Aspekten widerspiegelt:
Die Grundeinheit der Byte-Stream-Operation ist der Wortabschnitt ; Die Grundeinheit von Zeichenstromoperationen ist das Unicode-Codeelement.
Byte-Streams verwenden standardmäßig keine Puffer;
Byte-Stream wird normalerweise zur Verarbeitung von Binärdaten verwendet. Tatsächlich kann er jede Art von Daten verarbeiten, unterstützt jedoch normalerweise kein direktes Schreiben oder Lesen von Unicode-Code-Elementen verarbeitet Text, der das Schreiben und Lesen von Unicode-Codeelementen unterstützt.
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Unterschied zwischen Zeichenstrom und Bytestrom in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!