Maison  >  Article  >  Java  >  Conseils d'utilisation des flux Java pour l'entrée/sortie de fichiers

Conseils d'utilisation des flux Java pour l'entrée/sortie de fichiers

PHPz
PHPzoriginal
2024-07-21 15:06:38860parcourir

Qu'est-ce que l'entrée/sortie Java ?

Java Input/Output (I/O) est utilisé pour traiter les entrées et générer des sorties sous forme de fichiers. Java utilise le concept de flux, qui permet des opérations d'E/S rapides.
Avec le package java.io, toutes les opérations d'entrée et de sortie peuvent être facilement effectuées.

Gestion des fichiers en Java à l'aide des entrées/sorties

Flux

Les flux peuvent être définis comme une séquence de données composée d'octets. On l'appelle un ruisseau parce que c'est comme un cours d'eau qui continue de couler. Il existe deux types de flux :

Input Stream : Utilisé pour lire les données d'une source. Il peut s'agir d'un fichier, d'un tableau, d'un périphérique ou d'un socket.
Output Stream : utilisé pour écrire des données vers une destination. Il peut s'agir d'un fichier, d'un tableau, d'un périphérique ou d'un socket.
Le flux d'un flux d'entrée est illustré ci-dessous :

Image description

Octet à diffuser

Les flux d'octets Java sont utilisés pour effectuer l'entrée et la sortie d'octets de 8 bits. Voici un exemple qui utilise ces deux classes pour copier un fichier d'entrée dans un fichier de sortie −

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

public class LearnStream {
    public static void main(String[] args) throws IOException {

       var directory = "D://sample/stream/";
       var fileInput = new FileInputStream(directory+"input.txt");
       var fileOutput = new FileOutputStream(directory+"output.txt");

       try{
           int i;
           while((i= fileInput.read())!=-1){
               fileOutput.write(i);
           }
       } catch (IOException e) {
           throw new RuntimeException(e);
       }

    }

}

Ayons maintenant un fichier input.txt avec le contenu suivant

Dimas Priyandi
Software Developer
Java
Angular 
Spring Boot

Programme en cours d'exécution et nous obtenons un fichier avec le nom output.txt avec le contenu suivant

Dimas Priyandi
Software Developer
Java
Angular 
Spring Boot

Exemple

Pour mieux comprendre les flux d'entrée de fichiers et les flux de sortie de fichiers, créons un nouvel exemple dans lequel nous avons un fichier d'entrée nommé count.txt.

Le contenu de count.txt est le suivant :

100
90
80
70
60
50
40
30
20
10
0

Lorsque le flux d'entrée de fichier lit les données numériques du fichier count.txt, nous les stockerons dans un tableau, puis effectuerons une opération de sommation pour calculer la somme totale des données. Veuillez suivre le code du programme ci-dessous :

import java.io.*;

public class LeanCount {
    public static void main(String[] args) throws FileNotFoundException {
        var directory = "D://sample/stream/";
        var fileInput = new FileInputStream(directory+"count.txt");
        var fileOutput = new FileOutputStream(directory+"sum.txt");
        Integer sum = 0;
        try{
            var reader = new BufferedReader(new InputStreamReader(fileInput));
            var outputWriter = new BufferedWriter(new OutputStreamWriter(fileOutput));
            String line;
            while((line=reader.readLine()) !=null){
                sum+=Integer.parseInt(line);
            }
            reader.close();
            outputWriter.write(sum.toString());
            outputWriter.close();


        } catch (IOException e) {
            throw new RuntimeException(e);
        }

    }

    }



Sortie :

  • nous pouvons voir que le résultat de sum.txt est :
550

Explication :

  • FileInputStream : utilisé pour lire les octets du fichier count.txt.
  • InputStreamReader : convertit les octets lus par FileInputStream en caractères.
  • BufferedReader : Fournit la méthode readLine() pour lire le fichier ligne par ligne.
  • Tableau de nombres : un tableau d'entiers pour stocker les nombres lus dans le fichier.
  • Calcul de la somme : une boucle pour résumer tous les nombres stockés dans le tableau.
  • FileOutputStream : utilisé pour écrire des octets dans le fichier.
  • OutputStreamWriter : convertit le flux de caractères en flux d'octets.
  • BufferedWriter : fournit une mise en mémoire tampon pour écrire efficacement des caractères, des tableaux et des lignes.

Résumé

Les flux d'E/S de Java offrent un moyen puissant de gérer les opérations sur les fichiers. En utilisant InputStream et OutputStream, ainsi que leurs homologues mis en mémoire tampon, vous pouvez lire et écrire efficacement dans des fichiers.

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
Article précédent:Liste liée impaire-pairArticle suivant:Liste liée impaire-pair