Maison >Java >javaDidacticiel >Quels sont les principes et concepts clés des flux d'E/S Java ?

Quels sont les principes et concepts clés des flux d'E/S Java ?

WBOY
WBOYoriginal
2024-04-15 11:12:021129parcourir

Les flux d'E/S Java fournissent un mécanisme de lecture et d'écriture de données via un modèle producteur-consommateur, simplifiant ainsi la communication entre les sources de données et les destinations. Les types de flux sont divisés en flux d'octets et flux de caractères. Le flux d'entrée est utilisé pour lire les données et le flux de sortie est utilisé pour écrire des données. Les concepts clés incluent la mise en mémoire tampon, le marquage, les méthodes de lecture/écriture et les descripteurs de fichiers. Cas pratique : lors de la lecture du texte d'un fichier et de sa copie dans un autre fichier, FileInputStream est utilisé comme flux d'entrée, FileOutputStream est utilisé comme flux de sortie, la boucle while lit les octets et les écrit, et la méthode flush() rafraîchit le tampon. .

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

Principes et concepts clés des flux d'E/S Java

Introduction

Le mécanisme de flux d'E/S Java fournit une abstraction pour la lecture et l'écriture de données, simplifiant ainsi différents types de sources de données et de destinations de communication entre . Il est basé sur le modèle producteur-consommateur, où les producteurs génèrent des données et les consommateurs les reçoivent et les traitent.

Types de flux

Flux d'octets : Lisez et écrivez des données d'octets brutes, telles que des images ou des fichiers.
Flux de caractères : Lisez et écrivez des données de caractères, représentées par le type Char, telles que du texte ou du code.

Flux d'entrée et de sortie

Flux d'entrée : est utilisé pour lire les données de la source de données.
Flux de sortie : Utilisé pour écrire des données vers la destination.

Concepts clés

  • Buffering : Pour améliorer les performances, les flux utilisent des tampons pour stocker temporairement les données.
  • Marques :  Les marqueurs permettent à un flux de se souvenir de sa position actuelle afin de pouvoir relire les données plus tard.
  • Méthodes de lecture et d'écriture : Les flux fournissent diverses méthodes pour lire et écrire des données, telles que read(), write() et flush(). <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.txt
File Handle : 🎜 Pour les E/S de fichier, un descripteur de fichier est créé lorsqu'un fichier est ouvert, qui est utilisé pour identifier le fichier. 🎜🎜🎜🎜Exemple pratique : 🎜🎜🎜Considérez le code Java suivant pour lire le texte d'un fichier et le copier dans un autre fichier : 🎜rrreee🎜Dans cet exemple : 🎜🎜🎜🎜FileInputStream 🎜 est utilisé en tant que 🎜flux d'entrée🎜 pour lire les octets du fichier source.txt. 🎜🎜🎜FileOutputStream🎜 est utilisé comme 🎜flux de sortie🎜 pour écrire des octets dans le fichier target.txt. 🎜🎜🎜while🎜 Boucles pour lire les octets dans source.txt et les écrire dans target.txt. La méthode 🎜🎜🎜flush()🎜 vide le tampon de target.txt pour garantir que tous les octets ont été écrits dans le fichier. 🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn