Maison >Java >javaDidacticiel >Flux d'octets et flux de caractères d'apprentissage JAVA pour les opérations d'E/S (partage de résumé)

Flux d'octets et flux de caractères d'apprentissage JAVA pour les opérations d'E/S (partage de résumé)

WBOY
WBOYavant
2022-04-07 13:23:411791parcourir

Cet article vous apporte des connaissances pertinentes sur java. Il présente principalement les problèmes liés aux opérations d'E/S, y compris les flux d'octets et les flux de caractères. J'espère qu'il sera utile à tout le monde.

Flux d'octets et flux de caractères d'apprentissage JAVA pour les opérations d'E/S (partage de résumé)

Étude recommandée : "Tutoriel vidéo Java"

Avant-propos : Ce chapitre présente en détail l'utilisation de base du flux d'octets et du flux de caractères, avec des illustrations entrecoupées d'implémentation de code.

Opération IO

Flux doctets et flux de caractères dapprentissage JAVA pour les opérations dE/S (partage de résumé)

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 en txt

FileWriter

Exemple d'écriture de fichier

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();
    }}

Flux doctets et flux de caractères dapprentissage JAVA pour les opérations dE/S (partage de résumé)
Flux doctets et flux de caractères dapprentissage JAVA pour les opérations dE/S (partage de résumé)

FileReader

Exemple de fichier de lecture
J'ai modifié le contenu en nouveau lignes ici
Flux doctets et flux de caractères dapprentissage JAVA pour les opérations dE/S (partage de résumé)
br .ready() sert à déterminer si ce flux de ligne est vide
br.readLine() sert à 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();
    }}

Flux doctets et flux de caractères dapprentissage JAVA pour les opérations dE/S (partage de résumé)

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 flush. 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).

Apprentissage recommandé : "
Tutoriel vidéo Java

"

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