Maison Java javaDidacticiel Techniques et applications de lecture et d'écriture de fichiers implémentées en Java

Techniques et applications de lecture et d'écriture de fichiers implémentées en Java

Jun 18, 2023 am 08:34 AM
应用实例 文件处理技巧 java文件读写

Java est un langage de programmation de haut niveau doté de fonctions de lecture et d'écriture de fichiers très puissantes. Dans cet article, nous présenterons les techniques et applications de lecture et d’écriture de fichiers Java.

1. Bases de la lecture et de l'écriture de fichiers Java

1.1 Lecture de fichiers

La méthode la plus couramment utilisée pour lire des fichiers en Java consiste à utiliser le Classe BufferedReader. Voici un exemple simple :

try{
    BufferedReader br = new BufferedReader(new FileReader("input.txt"));
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
} catch(IOException e){
    e.printStackTrace();
}
Copier après la connexion

Dans ce code, nous créons d'abord un objet BufferedReader, qui lit le fichier input.txt à l'aide de la classe FileReader. Nous lisons ensuite chaque ligne du fichier et l'imprimons sur la console.

1.2 Écriture de fichiers

La manière la plus courante d'écrire des fichiers en Java est d'utiliser la classe PrintWriter. Voici un exemple simple :

try{
    PrintWriter pw = new PrintWriter("output.txt");
    pw.println("Hello, world!");
    pw.close();
} catch(IOException e){
    e.printStackTrace();
}
Copier après la connexion

Dans ce code, nous créons d'abord un objet PrintWriter, qui écrira la sortie dans le fichier output.txt. Ensuite, nous écrivons une ligne de chaîne "Hello, world!" dans le fichier et fermons enfin l'objet PrintWriter.

1.3 Lecture et écriture de fichiers binaires

En plus des fichiers texte, Java peut également lire et écrire des fichiers binaires. Voici un exemple simple :

try{
    FileInputStream fis = new FileInputStream("input.bin");
    int data = fis.read();
    while (data != -1) {
        System.out.println(data);
        data = fis.read();
    }
    fis.close();
} catch(IOException e){
    e.printStackTrace();
}
Copier après la connexion

Dans ce code, nous créons d'abord un objet FileInputStream, qui ouvre le fichier input.bin en mode binaire. Nous lisons ensuite les données du fichier octet par octet et les imprimons sur la console. Enfin, nous fermons l'objet FileInputStream.

2. Compétences en lecture et en écriture de fichiers Java

2.1 Encodage des caractères de fichier

Lors du traitement de fichiers texte en Java, vous devez accorder une attention particulière à l'encodage des caractères du fichier. Si le codage du fichier n'est pas le codage UTF-8 par défaut de Java, vous devez utiliser un encodeur approprié pour lire ou écrire le fichier. Voici un exemple de lecture d'un fichier encodé en UTF-16 :

try{
    BufferedReader br = new BufferedReader(new InputStreamReader(
            new FileInputStream("input.txt"), "UTF-16"));
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
    br.close();
} catch(IOException e){
    e.printStackTrace();
}
Copier après la connexion

Dans ce code, nous lisons input.txt en convertissant l'objet FileInputStream en un objet InputStreamReader et en spécifiant le document de l'encodeur UTF-16. Il est important de noter que la lecture d'un fichier texte à l'aide d'un encodeur incorrect peut produire des caractères étranges ou des erreurs d'encodage, alors faites attention à l'encodage du fichier.

2.2 Lecture et écriture de fichiers volumineux

Vous devez accorder une attention particulière à l'utilisation de la mémoire lors du traitement de fichiers volumineux. Si vous lisez l'intégralité du fichier en mémoire en une seule fois, vous risquez de provoquer une fuite de mémoire ou un crash du programme. Vous pouvez donc utiliser Java NIO (New I/O) pour lire des fichiers volumineux ligne par ligne. Voici un exemple de lecture d'un fichier volumineux :

try{
    RandomAccessFile raf = new RandomAccessFile("input.txt", "r");
    FileChannel fc = raf.getChannel();
    ByteBuffer buf = ByteBuffer.allocate(1024);
    while (fc.read(buf) != -1) {
        buf.flip();
        byte[] bytes = new byte[buf.limit()];
        buf.get(bytes);
        System.out.print(new String(bytes, Charset.forName("UTF-8")));
        buf.clear();
    }
    fc.close();
    raf.close();
} catch(IOException e){
    e.printStackTrace();
}
Copier après la connexion

Dans ce code, nous créons d'abord un objet RandomAccessFile et utilisons l'objet RandomAccessFile pour créer un objet FileChannel. Ensuite, nous créons un objet ByteBuffer d'une taille de 1024 octets. Ensuite, nous utilisons l'objet FileChannel pour lire les données dans l'objet ByteBuffer, utilisons l'objet ByteBuffer pour convertir les données en un tableau d'octets et utilisons l'encodeur UTF-8 pour convertir le tableau d'octets en chaîne. Enfin, nous effaçons l'objet ByteBuffer afin de pouvoir lire les données la prochaine fois.

2.3 Écriture de fichiers volumineux

Lorsque vous traitez des fichiers volumineux, vous devez également accorder une attention particulière à la division du fichier en tailles appropriées et à l'écriture ligne par ligne. Voici un exemple d'écriture d'un fichier volumineux :

try{
    PrintWriter pw = new PrintWriter(new File("output.txt"));
    for (int i = 0; i < 1000000; i++) {
        pw.println("Line #" + i);
        if (i % 10000 == 0) {
            pw.flush();
        }
    }
    pw.close();
} catch(IOException e){
    e.printStackTrace();
}
Copier après la connexion

Dans ce code, nous créons d'abord un objet PrintWriter, qui écrira la sortie dans le fichier output.txt. Ensuite, nous écrivons 1 000 000 de lignes de données dans une boucle et vidons le tampon toutes les 10 000 lignes pour écrire les données sur le disque. Enfin, nous fermons l'objet PrintWriter.

3. Application de lecture et d'écriture de fichiers Java

3.1 Copie de fichiers

L'une des applications les plus couramment utilisées pour la fonction de lecture et d'écriture de fichiers Java est copie de fichiers. Voici un exemple simple de copie de fichier :

try{
    FileInputStream fis = new FileInputStream("input.txt");
    FileOutputStream fos = new FileOutputStream("output.txt");
    byte[] buffer = new byte[1024];
    int count;
    while ((count = fis.read(buffer)) != -1) {
        fos.write(buffer, 0, count);
    }
    fis.close();
    fos.close();
} catch(IOException e){
    e.printStackTrace();
}
Copier après la connexion

Dans ce code, nous créons d'abord un objet FileInputStream pour lire le fichier input.txt. Ensuite, nous avons créé un objet FileOutputStream pour écrire des données dans le fichier output.txt. Ensuite, nous créons un tampon de tableau d'octets pour copier le fichier bloc par bloc. Enfin, nous parcourons chaque élément de données du fichier et l'écrivons dans le fichier de sortie.

3.2 Calcul de la valeur de hachage du fichier

La fonction de lecture et d'écriture de fichier Java peut également être utilisée pour calculer la valeur de hachage (Hash) du fichier. Voici un exemple de calcul de la valeur de hachage du fichier :

try{
    MessageDigest md = MessageDigest.getInstance("SHA-256");
    FileInputStream fis = new FileInputStream("input.txt");
    byte[] buffer = new byte[1024];
    int count;
    while ((count = fis.read(buffer)) != -1) {
        md.update(buffer, 0, count);
    }
    fis.close();
    byte[] digest = md.digest();
    System.out.println(DatatypeConverter.printHexBinary(digest));
} catch(IOException | NoSuchAlgorithmException e){
    e.printStackTrace();
}
Copier après la connexion

Dans ce code, nous créons d'abord un objet MessageDigest et utilisons l'algorithme de cryptage SHA-256. Ensuite, nous avons créé un objet FileInputStream pour lire le fichier input.txt. Ensuite, nous créons un tampon de tableau d'octets, parcourons chaque élément de données du fichier et le mettons à jour dans l'objet MessageDigest. Enfin, nous fermons l'objet FileInputStream et utilisons l'objet MessageDigest pour calculer la valeur de hachage du fichier et afficher le résultat du calcul sur la console sous la forme d'une chaîne hexadécimale.

Conclusion

Les fonctions de lecture et d'écriture de fichiers Java sont très puissantes. Les développeurs peuvent utiliser de manière flexible diverses techniques pour gérer différents besoins de lecture et d'écriture, tels que le traitement de l'encodage de fichiers et la lecture de fichiers volumineux. et l'écriture, la copie de fichiers et le calcul de la valeur de hachage, etc. Par conséquent, la maîtrise des compétences et des applications en lecture et en écriture de fichiers Java peut contribuer à améliorer l’efficacité du développement et la qualité du code.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Algorithme d'extraction de mots clés et exemples d'application implémentés en Java Algorithme d'extraction de mots clés et exemples d'application implémentés en Java Jun 18, 2023 pm 12:14 PM

Algorithmes d'extraction de mots-clés et exemples d'applications implémentés en Java Avec l'avènement de l'ère Internet, les données textuelles massives ont causé de grandes difficultés à obtenir et à analyser. Par conséquent, il est nécessaire de mener des recherches et d'appliquer des technologies de traitement du langage naturel telles que l'extraction de mots-clés. . L'extraction de mots clés fait référence à l'extraction de mots ou d'expressions d'un morceau de texte qui représentent le mieux le sujet du texte, fournissant ainsi une prise en charge de tâches telles que la classification, la récupération et le regroupement de texte. Cet article présente plusieurs algorithmes d'extraction de mots clés et des exemples d'applications implémentés en Java. 1. Algorithme TF-IDF TF-IDF est un

Méthodes Redis et exemples d'application pour implémenter des files d'attente asynchrones Méthodes Redis et exemples d'application pour implémenter des files d'attente asynchrones May 11, 2023 pm 03:27 PM

Redis est une base de données de stockage clé-valeur haute performance basée sur la mémoire. Elle prend non seulement en charge le stockage des paires clé-valeur, mais prend également en charge certaines structures de données complexes, telles que List, Set, SortedSet et Hash. La structure de données List est très adaptée comme structure de données pour les files d'attente asynchrones car elle prend en charge l'insertion et la suppression d'éléments aux deux extrémités. Cet article explique comment utiliser Redis pour implémenter des files d'attente asynchrones et donne un exemple d'application. 1. Comment Redis implémente la file d'attente asynchrone Lis dans Redis

Méthodes Redis et exemples d'application pour implémenter des files d'attente distribuées Méthodes Redis et exemples d'application pour implémenter des files d'attente distribuées May 11, 2023 pm 05:14 PM

En tant que base de données en mémoire hautes performances, Redis est largement utilisé dans les systèmes distribués. Parmi eux, en tant que composants importants des systèmes distribués, les files d'attente distribuées sont sans aucun doute très importantes. Cet article se concentrera sur les caractéristiques distribuées de Redis et présentera les méthodes et exemples d'application de Redis pour implémenter des files d'attente distribuées. 1. Fonctionnalités distribuées de Redis En tant que base de données en mémoire, Redis offre d'excellentes performances en matière de mise en cache, de persistance et d'autres aspects. Dans les systèmes distribués, Redis possède également une fonctionnalité très importante, à savoir Re

Méthodes Redis et exemples d'application pour réaliser une coordination distribuée Méthodes Redis et exemples d'application pour réaliser une coordination distribuée May 11, 2023 pm 03:27 PM

Méthodes Redis et exemples d'application pour la mise en œuvre de la coordination distribuée Dans les systèmes distribués, la coordination entre les nœuds est un problème clé. Les solutions traditionnelles utilisent généralement un nœud central pour coordonner d'autres nœuds, mais cela entraînera des problèmes tels que des points de défaillance uniques et des goulots d'étranglement en termes de performances. Ces dernières années, Redis, en tant que base de données en mémoire hautes performances, a été de plus en plus utilisée. Dans Redis, sa structure de données et son ensemble de commandes peuvent être utilisés pour implémenter des fonctions de coordination distribuées, obtenant ainsi un système distribué hautement disponible et hautes performances. Cet article présentera Re

Cinq cas incontournables pour comprendre la technologie Canvas JS Cinq cas incontournables pour comprendre la technologie Canvas JS Jan 17, 2024 am 08:05 AM

Exemples d'application de la technologie CanvasJS : cinq cas à connaître Introduction : L'émergence du HTML5 a apporté de nouvelles possibilités au développement Web, en particulier l'élément Canvas, qui offre un moyen puissant de dessiner des graphiques et des animations sur la page. En combinaison avec la puissance de JavaScript, les développeurs peuvent utiliser Canvas pour obtenir une variété d'effets et d'interactions intéressants et améliorer l'expérience utilisateur. Cet article présentera cinq exemples d'applications CanvasJS étonnants et fournira des

Exemples d'application de Redis dans la visualisation de données Exemples d'application de Redis dans la visualisation de données May 11, 2023 pm 04:29 PM

Exemples d'application de Redis dans la visualisation de données Ces dernières années, la visualisation de données est devenue l'un des maillons importants de l'analyse des données et de la prise de décision. Grâce aux outils de visualisation, les analystes de données et les décideurs peuvent comprendre la situation des données de manière plus claire et intuitive, afin de prendre de meilleures décisions. Les défis posés par le Big Data nous incitent également à continuer d’explorer et d’innover dans le domaine de la visualisation des données. Cet article présentera les exemples d'application de Redis dans la visualisation de données. Grâce à ces exemples, nous pouvons mieux comprendre l'écologie et la valeur de Redis dans la visualisation de données.

Exemples d'application de Redis dans les systèmes de recommandation Exemples d'application de Redis dans les systèmes de recommandation May 12, 2023 am 11:21 AM

Exemples d'application de Redis dans les systèmes de recommandation Avec le développement d'Internet et la croissance explosive de l'information, la surcharge d'informations est devenue un problème majeur affectant l'accès des personnes à l'information. Par conséquent, le système de recommandation est apparu au fur et à mesure que les temps l'exigent. Il peut prédire le comportement des utilisateurs grâce à des algorithmes et fournir des services de recommandation personnalisés, ce qui améliore considérablement l'expérience utilisateur et les bénéfices des produits. La mise en œuvre du système de recommandation nécessite une grande quantité de stockage, de traitement et de calcul de données, et Redis est une excellente solution. Redis est une base de données NoSQL hautes performances,

Configuration de l'espace de noms et exemples d'application en PHP Configuration de l'espace de noms et exemples d'application en PHP Jun 25, 2023 am 08:32 AM

PHP est un langage de programmation très flexible avec une large gamme d'applications. Dans le développement PHP, afin d'éviter les conflits de noms et d'améliorer la lisibilité et la maintenabilité du code, PHP introduit le concept d'espace de noms. Les espaces de noms aident les développeurs à utiliser le même nom de classe ou de fonction dans le même projet sans conflit. Cet article expliquera comment configurer les espaces de noms en PHP et des exemples d'applications courantes. 1. Comment configurer l'espace de noms PHP. Déclarez l'espace de noms en PHP en utilisant Namespa en haut du fichier.

See all articles