Maison >Java >javaDidacticiel >Exemple d'analyse des opérations de lecture et d'écriture de fichiers Java

Exemple d'analyse des opérations de lecture et d'écriture de fichiers Java

WBOY
WBOYavant
2023-04-24 14:43:071181parcourir

Les programmes IO

Java de

java permettent la transmission de données avec des périphériques d'entrée et de sortie via des flux. Les flux en Java sont tous dans le package java.io et sont appelés flux IO (entrée et sortie). Les flux IO peuvent être divisés en flux d'octets et flux de caractères selon différentes données d'exploitation. Selon les différentes directions de transmission de données, ils peuvent être divisés en flux d'entrée et flux de sortie. Le programme lit les données du flux d'entrée et écrit dans le flux de sortie. .Données, dans le package IO, l'entrée et la sortie du flux d'octets sont représentées respectivement par java.InputStream et java.io.OutputStream, et l'entrée et la sortie du flux de caractères sont représentées par java.io.Reader et java. io.Writer respectivement.

Flux d'octets

Dans un ordinateur, tous les fichiers, qu'ils soient texte, images, audio ou vidéo, existent sous forme binaire. Le flux d'octets est le flux le plus couramment utilisé dans les programmes et est divisé en fonction du sens de transmission des données. flux d'entrée et flux de sortie d'octets, le JDK fournit deux classes abstraites InputStream et OutputStream. Ce sont les classes parentes de niveau supérieur des flux d'octets héritent de OutputStream.

InputStream est la méthode couramment utilisée

int read(). //Lire un octet de huit bits du flux d'entrée, le convertir en un entier compris entre 0 et 255 et renvoyer cet entier
int read(byte[]b) //Lire plusieurs octets du flux d'entrée, les enregistrer dans le tableau d'octets spécifié par le paramètre b, et renvoie la table d'entiers 4 pour lire le nombre d'octets
int read(byte[]b,int off,int len ​​)//Lire un certain nombre d'octets du flux d'entrée et les enregistrer dans le tableau d'octets spécifié par le paramètre b.off spécifie l'index de départ du tableau d'octets pour commencer à enregistrer les données, et len ​​représente le nombre d'octets lus
void close ()//Fermez ce flux d'entrée et libérez toutes les ressources système associées au flux

Méthodes courantes de OutputStream

void write(int b)//Écrire un octet dans le flux de sortie
void write(byte[ ]b)//Écrire tous les octets du tableau d'octets spécifié par le paramètre b dans le flux de sortie
void write(byte[]b,int off,int len)//Démarrer à partir du décalage dans le tableau d'octets spécifié len les octets sont écrits dans le flux de sortie
void flush()//Actualiser ce flux de sortie et forcer l'écriture manuscrite de tous octets de sortie tamponnés
void close()//Fermez ce flux de sortie et libérez tous les systèmes liés à ce flux La méthode de ressource

flush() est utilisée pour forcer les données dans le tampon du flux de sortie actuel (généralement un tableau d'octets) à être écrit sur le périphérique cible. Ce processus est appelé vidage. Bien que les deux classes InputStream et OutputStream fournissent certaines méthodes liées à la lecture et à l'écriture de données, ces deux classes sont des classes abstraites et ne peuvent pas être instanciées.

Lecture et écriture de fichiers par flux d'octets

Étant donné que les données de l'ordinateur sont essentiellement stockées dans des fichiers sur le disque dur, lors de l'exploitation d'un fichier, les données sont lues à partir du fichier et écrites dans le fichier. pour la lecture. Deux classes pour les opérations d’écriture. Étant donné que la lecture des données d'un fichier est une opération répétée, des instructions de boucle sont nécessaires pour obtenir une lecture continue des données.

 package IO;
 import java.io.FileInputStream;
 public class Li01 {
     public static void main(String[] args) throws Exception{
         FileInputStream in=new FileInputStream("test.txt");
         int b=0;
         while(true){
             b=in.read();
             if(b==-1){
                 break;
             }
             System.out.print(b+" ");
         }
         in.close();
     }
 }

Résultats de la démonstration

Exemple danalyse des opérations de lecture et décriture de fichiers Java

La raison pour laquelle les nombres sont affichés est que les fichiers sur le disque dur existent sous forme d'octets. Lors de la lecture des données du fichier, vous devez vous assurer que le fichier existe dans le répertoire correspondant et qu'il est. lisible.

Comment écrire des données dans un fichier

 package IO;
 import java.io.FileOutputStream;
 import java.io.OutputStream;
 import java.nio.charset.StandardCharsets;
 public class Li02 {
     public static void main(String[] args) throws Exception{
         OutputStream out=new FileOutputStream("example1.txt");
         String str="好好学习,天天向上!";
         byte[]b=str.getBytes(StandardCharsets.UTF_8);
         for(int i=0;i<b.length;i++){
             out.write(b[i]);
         }
         out.close();
     }
 }

Exemple danalyse des opérations de lecture et décriture de fichiers Java

Lors de l'écriture de données via FileOutputStream, le fichier example1.txt est automatiquement créé et les données sont écrites dans le fichier. Si vous écrivez du contenu dans un fichier existant, commencez par le fichier. Le contenu sera effacé, puis de nouvelles données seront écrites. Si vous souhaitez ajouter du contenu au fichier existant, vous pouvez ajouter une valeur booléenne après le nom du fichier et la définir sur true.

package IO;
 import java.io.FileOutputStream;
 import java.io.OutputStream;
 import java.nio.charset.StandardCharsets;
 public class Li02 {
     public static void main(String[] args) throws Exception{
         OutputStream out=new FileOutputStream("example1.txt",true);
         String str="好好学习,天天向上!";
         byte[]b=str.getBytes(StandardCharsets.UTF_8);
         for(int i=0;i<b.length;i++){
             out.write(b[i]);
         }
         out.close();
     }
 }

Exemple danalyse des opérations de lecture et décriture de fichiers 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