Maison  >  Article  >  Java  >  Analyse d'exemples de flux d'octets et de flux de caractères d'opérations d'E/S en JAVA

Analyse d'exemples de flux d'octets et de flux de caractères d'opérations d'E/S en JAVA

王林
王林avant
2023-04-22 17:58:08781parcourir

Analyse dexemples de flux doctets et de flux de caractères dopérations dE/S en JAVA

Opération IO

Analyse dexemples de flux doctets et de flux de caractères dopérations dE/S en JAVA

byte stream

  • java.io.InputStream flux d'entrée, principalement utilisé pour lire le contenu des fichiers.

  • Java.io.OutputStream flux de sortie, principalement utilisé pour écrire des octets de contenu dans des fichiers.

FileInputStream

Ce flux est utilisé pour lire les données d'un fichier, et son objet peut être créé avec le mot-clé new.
Il existe différentes méthodes de constructeur utilisées pour créer des objets.
Vous pouvez utiliser un nom de fichier de type chaîne pour créer un objet de flux d'entrée pour lire le fichier

InputStream f = new FileInputStream("D:/hello");

Vous pouvez également utiliser un objet fichier pour créer un objet de flux d'entrée pour lire le fichier. Nous devons d'abord utiliser la méthode File() pour créer un objet fichier :

File f = new File("D:/hello");InputStream in = new FileInputStream(f);

FileOutputStream

Cette classe est utilisée pour créer un fichier et écrire des données dans le fichier.
Si le fichier cible n'existe pas avant que le flux n'ouvre le fichier pour la sortie, alors le flux créera le fichier.
Deux constructeurs peuvent être utilisés pour créer des objets FileOutputStream.
Utilisez un nom de fichier de type chaîne pour créer un objet de flux de sortie :

OutputStream f = new FileOutputStream("D:/hello");

Vous pouvez également utiliser un objet fichier pour créer un flux de sortie afin d'écrire des fichiers. Nous devons d'abord utiliser la méthode File() pour créer un objet fichier :

File f = new File("D:/hello");OutputStream fOut = new FileOutputStream(f);

Cas de lecture et d'écriture du flux d'octets

Lisez le contenu du fichier D:/hello.txt puis saisissez-le dans le fichier D:/test.

      public class Mk {
        public static void main(String[] args) throws IOException {
            File file=new File("D://hello.txt");
            File file1= new File("D://test.txt");
            InputStream is=new FileInputStream(file);
            OutputStream out=new FileOutputStream(file1);
            //定义byte数组用来暂存数据
            byte[] buf = new byte[1024];
            //读取Is中的内容存到buf
            is.read(buf);
            //将buf中的内容写入out
            out.write(buf);
            is.close();
            out.close();
        }
        }

Flux de caractères

FileWriter

Instance d'écriture de fichier en txt

public class A {
    public static void main(String[] args) throws IOException {
        FileWriter fw = new FileWriter("user.txt", true);
        fw.write("你好中国1");
        fw.write("你好中国2");
        fw.write("你好中国3");
        fw.close();
    }}

Analyse dexemples de flux doctets et de flux de caractères dopérations dE/S en JAVA
Analyse dexemples de flux doctets et de flux de caractères dopérations dE/S en JAVA

FileReader

Instance de lecture du fichier
J'ai modifié le contenu vers de nouvelles lignes ici
Analyse dexemples de flux doctets et de flux de caractères dopérations dE/S en JAVA
br .ready() consiste à déterminer si ce flux de ligne est vide
br.readLine() consiste à afficher une ligne, puis à pointer automatiquement le curseur vers la ligne suivante.

public class A {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader("user.txt"));
        while (br.ready()) {
            System.out.println(br.readLine());
        }
        br.close();
    }}

Analyse dexemples de flux doctets et de flux de caractères dopérations dE/S en JAVA

La différence entre le flux d'octets et le flux de caractères

L'utilisation du flux d'octets et du flux de caractères est très similaire, donc à part la différence de code d'opération, quelles sont les différences ?

Le flux d'octets lui-même n'utilise pas le tampon (mémoire) lors du fonctionnement, il est directement exploité avec le fichier lui-même, tandis que le flux de caractères utilise le tampon lors du fonctionnement
Le flux d'octets est Lors de l'exploitation d'un fichier, le fichier peut être affiché même si la ressource n'est pas fermée (méthode close). Cependant, si le flux de caractères n'utilise pas la méthode close, aucun contenu ne sera affiché, indiquant que le flux de caractères utilise un tampon et peut être forcé à l'aide de la méthode de vidage. Actualisez le tampon, puis le contenu peut être affiché sans fermeture. Ainsi, en développement, est-il préférable d'utiliser un flux d'octets ou un flux de caractères ?

Lors de l'enregistrement ou du transfert de fichiers sur tous les disques durs, ils sont effectués en octets, y compris les images, et les caractères ne sont formés qu'en mémoire, les octets sont donc les opérations les plus courantes. Si vous souhaitez qu'un programme Java implémente une fonction de copie, vous devez utiliser un flux d'octets pour le fonctionnement (l'image peut être copiée), et lire et écrire en même temps (pour économiser de la mémoire).

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer