Table des matières
多种方法
方法 1:- 使用 BufferedReader
算法
说明
示例(方法 3)
输出
方法 2:- 使用 FileInputStream
方法 3:- 使用 FileReader。
结论
Maison Java javaDidacticiel Programme Java pour lire le contenu d'un gros fichier texte ligne par ligne

Programme Java pour lire le contenu d'un gros fichier texte ligne par ligne

Aug 27, 2023 pm 02:41 PM
java 大型文本文件 lecture de programme

Programme Java pour lire le contenu dun gros fichier texte ligne par ligne

本文介绍了逐行读取文本文件的方法。这里,通过示例解释这三种不同的方法。以文本格式存储文件非常重要,尤其是当数据从一种结构化/非结构化形式传输到另一种形式时。因此,基本的文件传输系统将txt文件的读写过程集成为其应用组件。因此,如何使用文本文件的读写方法对于解析器的制作也很重要。

多种方法

给定的问题陈述通过三种不同的方法解决

  • 通过使用 BufferedReader 类

  • 通过使用 FileInputStream

  • 通过使用 FileReader

让我们按顺序查看该程序及其输出。

注意 - 这些程序不会在任何在线 Java 编译器上给出预期结果。因为在线编辑器不会访问本地系统的文件路径。

方法 1:- 使用 BufferedReader

在此方法中,缓冲区由 BufferedReader 提供到 FileReader 中。它的性能非常有效,因为它使用更大的块读取而不是一次读取单个字符。

算法

  • 步骤 1 - 指定要读取的文件。

  • 步骤 2 - 按照不同的方法读取文件行,这意味着文件被作为一个块读取。

  • 第 3 步 - 在显示屏/屏幕上打印从文件中读取的行。

说明

BufferReader 与 BufferedInputStream 不同,因为 BufferedReader 读取字符,而 BufferedInputStream 读取原始字节。 Reader 是 BufferedReader 的超类,Reader 类的超类是 Object 类。 BufferedReader 类支持两个构造函数。使用这些构造函数创建 bufferedReader 实例。一个构造函数接受读取器实例,另一个构造函数接受读取器实例和缓冲区大小。

示例(方法 1)

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Read {
   public static void main(String[] args) {
      
      // making the BufferedReader object
      BufferedReader b_reader;
      try {
      
         // Reading the sample.txt file
         b_reader = new BufferedReader(new FileReader("sample.txt"));
         
         //reading line by line
         String ln = b_reader.readLine();
         while (ln != null) {
      
            //printing the line
            System.out.println(ln);
            ln = b_reader.readLine();
         }
         b_reader.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}
Copier après la connexion

输出

C:\java\javaprgstu\filehandling\File Handling Tutorial\Code\1_ReadFiles>javac Read.java
C:\java\javaprgstu\filehandling\File Handling Tutorial\Code\1_ReadFiles>java Read
Block1
This is an experimental file. Inserting the line 100
This is an experimental file. Inserting the line 101
This is an experimental file. Inserting the line 102
…..
This is an experimental file. Inserting the line 277
Block2
This is an experimental file. Inserting the line 100
This is an experimental file. Inserting the line 101
….
This is an experimental file. Inserting the line 277
Block3
This is an experimental file. Inserting the line 100
…
This is an experimental file. Inserting the line 277
Copier après la connexion

使用的示例文件包含 3 个行块,每个块有 177 行

方法 2:- 使用 FileInputStream

Java 应用程序可以使用 FileInputStream 从文本文件中读取数据。在这种方法中,文件内容作为字节流读取。

算法

  • 步骤 1 - 指定要读取的文件。

  • 第 2 步 - 检索文件行并将文件作为字节读取。

  • 第 3 步 - 在屏幕上显示从文件中读取的行。

说明

  • InputStream 是 FileInputStream 的超类。

  • FileInputStream 类支持三个构造函数。使用这些构造函数创建 FileInputStream 实例。一个构造函数接受 String 作为参数,另一个构造函数接受文件对象作为参数。

示例(方法 2)

import java.io.FileInputStream;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;
import java.io.FileNotFoundException;
public class Read2 {
   public static void main(String[] args)
   
   // exception handling
   throws FileNotFoundException{
      String path = "C:\java\javaprgstu\filehandling\File Handling Tutorial\Code\1_ReadFiles\sample.txt";
   
      //passing the file as a parameter to FileInputStream
      InputStream ins = new FileInputStream(path);
      
      // using Scanner scn to read the file input stream
      try (Scanner scn = new Scanner(
      ins, StandardCharsets.UTF_8.name())) {
         while (scn.hasNextLine()) {
         
            //printing line by line
            System.out.println(scn.nextLine());
         }
      }
   }
}
Copier après la connexion

输出

C:\java\javaprgstu\filehandling\File Handling Tutorial\Code\1_ReadFiles>javac Read2.java
C:\java\javaprgstu\filehandling\File Handling Tutorial\Code\1_ReadFiles>java Read2
Block1
This is an experimental file. Inserting the line 100
This is an experimental file. Inserting the line 101
This is an experimental file. Inserting the line 102
This is an experimental file. Inserting the line 103
This is an experimental file. Inserting the line 104
This is an experimental file. Inserting the line 105
This is an experimental file. Inserting the line 106
……………………………………
Copier après la connexion

使用的示例文件包含 3 个行块,每个块 177 行

方法 3:- 使用 FileReader。

Java 应用程序可以使用 FileReader 从文本文件中读取数据。在这种情况下,文件的内容被读取为字符流。

算法

  • 第 1 步 - 设置文件路径。

  • 第 2 步 - 读取文件行,文件将被读取为字符。

  • 第 3 步 - 在显示屏/屏幕上显示从文件中读取的行。

说明

Reader 是 FileReader 的超类,Reader 类的超类是 Object 类。指定正确的文件路径来读取大文本。

示例(方法 3)

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class Read3{
   public static void main(String[] args){
      
      //Set the name of the file to read
      File fileone = new File("sample.txt");
      
      // make frd as a FileReader object
      try (FileReader frd = new FileReader(fileone)){
         int content1;
         while ((content1 = frd.read()) != -1) {
            System.out.print((char) content1);
         }
      } catch (IOException e) {
            e.printStackTrace();
         }
   }
}
Copier après la connexion

输出

C:\java\javaprgstu\filehandling\File Handling Tutorial\Code\1_ReadFiles>javac Read3.java
C:\java\javaprgstu\filehandling\File Handling Tutorial\Code\1_ReadFiles>java Read3
Block1
This is an experimental file. Inserting the line 100
This is an experimental file. Inserting the line 101
This is an experimental file. Inserting the line 102
This is an experimental file. Inserting the line 103
This is an experimental file. Inserting the line 104
This is an experimental file. Inserting the line 105
This is an experimental file. Inserting the line 106
This is an experimental file. Inserting the line 107
……………………………………….
Copier après la connexion

使用的示例文件包含 3 个行块,每个块有 177 行

结论

在上面的文章中,使用三种不同的方法使用 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 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)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines 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)

Racine carrée en Java Racine carrée en Java Aug 30, 2024 pm 04:26 PM

Guide de la racine carrée en Java. Nous discutons ici du fonctionnement de Square Root en Java avec un exemple et son implémentation de code respectivement.

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Numéro Armstrong en Java Numéro Armstrong en Java Aug 30, 2024 pm 04:26 PM

Guide du numéro Armstrong en Java. Nous discutons ici d'une introduction au numéro d'Armstrong en Java ainsi que d'une partie du code.

Générateur de nombres aléatoires en Java Générateur de nombres aléatoires en Java Aug 30, 2024 pm 04:27 PM

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

See all articles