Heim  >  Artikel  >  Java  >  Was sind die Prinzipien und Schlüsselkonzepte von Java-I/O-Streams?

Was sind die Prinzipien und Schlüsselkonzepte von Java-I/O-Streams?

WBOY
WBOYOriginal
2024-04-15 11:12:021125Durchsuche

Java-I/O-Streams bieten einen Mechanismus zum Lesen und Schreiben von Daten über ein Producer-Consumer-Modell und vereinfachen so die Kommunikation zwischen Datenquellen und -zielen. Stream-Typen werden in Byte-Streams und Zeichen-Streams unterteilt. Der Eingabestream wird zum Lesen von Daten und der Ausgabestream zum Schreiben von Daten verwendet. Zu den Schlüsselkonzepten gehören Pufferung, Markierung, Lese-/Schreibmethoden und Dateihandles. Praktischer Fall: Beim Lesen von Text aus einer Datei und beim Kopieren in eine andere Datei wird FileInputStream als Eingabestream verwendet, FileOutputStream als Ausgabestream, die while-Schleife liest Bytes und schreibt sie und die Methode „flush()“ aktualisiert den Puffer .

Java I/O流的原理和关键概念是什么?

Prinzipien und Schlüsselkonzepte von Java-I/O-Streams

Einführung

Der Java-I/O-Stream-Mechanismus bietet eine Abstraktion zum Lesen und Schreiben von Daten und vereinfacht so die Kommunikation zwischen verschiedenen Arten von Datenquellen und Zielen . Es basiert auf dem „Produzenten-Konsumenten“-Modell, bei dem Produzenten Daten generieren und Verbraucher diese empfangen und verarbeiten.

Arten von Streams

Byte-Streams:

Rohe Byte-Daten wie Bilder oder Dateien lesen und schreiben. Zeichenstrom:
Lesen und schreiben Sie Zeichendaten, die durch den Char-Typ dargestellt werden, z. B. Text oder Code.

Eingabe- und Ausgabeströme

Eingabestrom:

wird zum Lesen von Daten aus der Datenquelle verwendet. Ausgabestream:
Wird zum Schreiben von Daten an das Ziel verwendet.

Schlüsselkonzepte

    Pufferung:
  • Um die Leistung zu verbessern, verwenden Streams Puffer, um Daten vorübergehend zu speichern.
  • Markierungen:
  • Markierungen ermöglichen es einem Stream, sich seine aktuelle Position zu merken, sodass er die Daten später erneut lesen kann.
  • Lese- und Schreibmethoden:
  • Streams bieten verschiedene Methoden zum Lesen und Schreiben von Daten, wie zum Beispiel read(), write() und flush(). <strong></strong><code>read()write()flush()
  • 文件句柄: 对于文件 I/O,打开文件时会创建一个文件句柄,该句柄用于识别文件。

实战案例:

考虑以下 Java 代码从文件中读取文本并将其复制到另一个文件中:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyFile {

    public static void main(String[] args) {
        // 源文件
        File sourceFile = new File("source.txt");

        // 目标文件
        File targetFile = new File("target.txt");

        // 创建文件输入流
        try (FileInputStream fis = new FileInputStream(sourceFile);
             // 创建文件输出流
             FileOutputStream fos = new FileOutputStream(targetFile)) {

            // 循环读取源文件中的字节
            int b;
            while ((b = fis.read()) != -1) {

                // 将读取到的字节写入目标文件
                fos.write(b);
            }

            // 刷新目标文件缓冲区
            fos.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在这个例子中:

  • FileInputStream 用作 输入流,用于从 source.txt 文件中读取字节。
  • FileOutputStream 用作 输出流,用于将字节写入到 target.txt 文件中。
  • while 循环读取 source.txt 中的字节并将其写入 target.txt
  • flush() 方法刷新 target.txtDatei-Handle:
  • Für Datei-E/A wird beim Öffnen einer Datei ein Datei-Handle erstellt, das zur Identifizierung der Datei verwendet wird.
🎜🎜🎜Praktisches Beispiel: 🎜🎜🎜Betrachten Sie den folgenden Java-Code, um Text aus einer Datei zu lesen und in eine andere Datei zu kopieren: 🎜rrreee🎜In diesem Beispiel: 🎜🎜🎜🎜FileInputStream 🎜 wird verwendet als 🎜Eingabestream🎜 zum Lesen von Bytes aus der Datei source.txt. 🎜🎜🎜FileOutputStream🎜 wird als 🎜Ausgabestream🎜 zum Schreiben von Bytes in die Datei target.txt verwendet. 🎜🎜🎜while🎜 Schleifen, um die Bytes in source.txt zu lesen und sie in target.txt zu schreiben. Die Methode 🎜🎜🎜flush()🎜 leert den Puffer von target.txt, um sicherzustellen, dass alle Bytes in die Datei geschrieben wurden. 🎜🎜

Das obige ist der detaillierte Inhalt vonWas sind die Prinzipien und Schlüsselkonzepte von Java-I/O-Streams?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn