Inhaltsverzeichnis
Vorwort
In Java ist ein I/O-Stream (Eingabe/Ausgabe) ein Mechanismus zur Verarbeitung von Eingabe- und Ausgabevorgängen. Die E/A-Streams von Java sind hauptsächlich in zwei Kategorien unterteilt: Byte-Streams und Zeichen-Streams. Jede Kategorie ist in Eingabestreams und Ausgabestreams unterteilt.
1. Byte-Streams:
Byteströme führen Lese- und Schreibvorgänge in Bytes durch und eignen sich zur Verarbeitung binärer Daten (wie Bilder, Audio usw.).
1.1 Eingabebyte-Stream:
- InputStream (abstrakte Basisklasse für Eingabestreams):
FileInputStream
: Bytes aus Datei lesen.FileInputStream fis = new FileInputStream("example.txt"); int data = fis.read(); while (data != -1) { // 处理读取的字节数据 System.out.print((char) data); data = fis.read(); } fis.close();
ByteArrayInputStream
: Bytes aus einem Byte-Array lesen.byte[] byteArray = {65, 66, 67, 68, 69}; // ASCII values for A, B, C, D, E ByteArrayInputStream bais = new ByteArrayInputStream(byteArray); int data = bais.read(); while (data != -1) { // 处理读取的字节数据 System.out.print((char) data); data = bais.read(); } bais.close();
BufferedInputStream
: Bietet eine Pufferfunktion zur Verbesserung der Leseeffizienz.FileInputStream fis = new FileInputStream("example.txt"); BufferedInputStream bis = new BufferedInputStream(fis); int data = bis.read(); while (data != -1) { // 处理读取的字节数据 System.out.print((char) data); data = bis.read(); } bis.close();
1.2 Ausgabe-Byte-Stream:
- OutputStream (abstrakte Basisklasse für Ausgabestreams):
FileOutputStream
: Bytes in eine Datei schreiben.FileOutputStream fos = new FileOutputStream("output.txt"); fos.write("Hello, World!".getBytes()); fos.close();
ByteArrayOutputStream
: Bytes in ein Byte-Array schreiben.ByteArrayOutputStream baos = new ByteArrayOutputStream(); baos.write("Hello, World!".getBytes()); byte[] result = baos.toByteArray(); baos.close();
BufferedOutputStream
: Bietet Pufferfunktion zur Verbesserung der Schreibeffizienz.FileOutputStream fos = new FileOutputStream("output.txt"); BufferedOutputStream bos = new BufferedOutputStream(fos); bos.write("Hello, World!".getBytes()); bos.close();
2. Charakter-Streams:
Zeichenströme führen Lese- und Schreibvorgänge in Zeicheneinheiten durch und eignen sich zur Verarbeitung von Textdaten.
2.1 Eingabezeichenstrom:
- Reader (abstrakte Basisklasse für Eingabestreams):
FileReader
: Zeichen aus Datei lesen.FileReader fr = new FileReader("example.txt"); int data = fr.read(); while (data != -1) { // 处理读取的字符数据 System.out.print((char) data); data = fr.read(); } fr.close();
CharArrayReader
: Zeichen aus dem Zeichenarray lesen.char[] charArray = {'A', 'B', 'C', 'D', 'E'}; CharArrayReader car = new CharArrayReader(charArray); int data = car.read(); while (data != -1) { // 处理读取的字符数据 System.out.print((char) data); data = car.read(); } car.close();
BufferedReader
: Bietet eine Pufferfunktion zur Verbesserung der Leseeffizienz.FileReader fr = new FileReader("example.txt"); BufferedReader br = new BufferedReader(fr); String line = br.readLine(); while (line != null) { // 处理读取的一行字符数据 System.out.println(line); line = br.readLine(); } br.close();
2.2 Ausgabezeichenstrom:
- Writer (abstrakte Basisklasse für Ausgabestreams):
FileWriter
: Zeichen in die Datei schreiben.FileWriter fw = new FileWriter("output.txt"); fw.write("Hello, World!"); fw.close();
CharArrayWriter
: Zeichen in ein Zeichenarray schreiben.CharArrayWriter caw = new CharArrayWriter(); caw.write("Hello, World!"); char[] result = caw.toCharArray(); caw.close();
BufferedWriter
: Bietet Pufferfunktion zur Verbesserung der Schreibeffizienz.FileWriter fw = new FileWriter("output.txt"); BufferedWriter bw = new BufferedWriter(fw); bw.write("Hello, World!"); bw.close();
3. Konvertierungsstrom (Konvertierungsstrom wird verwendet, um Bytestrom und Zeichenstrom zu verbinden):
- InputStreamReader: Konvertiert einen Byte-Eingabestream in einen Zeichen-Eingabestream.
FileInputStream fis = new FileInputStream("example.txt"); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader br = new BufferedReader(isr); // 通过 BufferedReader 读取字符数据 br.close();
- OutputStreamWriter: Konvertiert einen Byte-Ausgabestream in einen Zeichen-Ausgabestream.
FileOutputStream fos = new FileOutputStream("output.txt"); OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8"); BufferedWriter bw = new BufferedWriter(osw); // 通过 BufferedWriter 写入字符数据 bw.close();
4. Objektfluss:
- ObjectInputStream: Der Eingabestream, der zum Lesen von Objekten verwendet wird.
FileOutputStream fos = new FileOutputStream("object.dat"); ObjectOutputStream oos = new ObjectOutputStream(fos); MyClass obj = new MyClass(); // MyClass需要实现Serializable接口 oos.writeObject(obj); oos.close();
- ObjectOutputStream: Der Ausgabestream, der zum Schreiben von Objekten verwendet wird.
FileInputStream fis = new FileInputStream("object.dat"); ObjectInputStream ois = new ObjectInputStream(fis); MyClass obj = (MyClass) ois.readObject(); // 强制类型转换为实际的对象类型 ois.close();
meine anderen Blogs
Git-Befehlssammlung: von den Grundlagen bis zu fortgeschrittenen Anwendungen – CSDN-Blog
Stellen Sie kurz einige andere Bäume im CSDN-Blog vor
Was ist Kater? Wofür wird Tomcat verwendet? -CSDN-Blog
TCP/IP-Vierschichtarchitektur-CSDN-Blog
Redis neuer Datentyp-Bitmaps-CSDN-Blog
Tencent – Unzureichender Speicher bei der Installation von MySQL8.0 in Pagoda in Centos7, einem leichtgewichtigen Anwendungsserver – CSDN-BlogSynchronisierte Optimierung – CSDN-BlogTencent -Light Unzureichender Speicher bei der Installation von MySQL 8.0 in der Pagode des Massenanwendungsservers centos7 – CSDN-Blog
[Computernetzwerk] URL-Konzept und Komposition-CSDN-Blog
[Computernetzwerk] TCP-Socket-Programmierung-CSDN-Blog