Java >> Java tutorial >  >> Java

Java læser fil linje for linje | Tekstfil | Scanner | Eksempler

Nogle gange er vi nødt til at Java læse fil linje for linje . For eksempel har tekstfilen data om elevrullenummer og navn linje for linje. Så hvordan vil du gøre det? Der er mange måder at gøre det på i java. I dette selvstudie lærer du om læsning af fil linje for linje i Java ved hjælp af scannerklassen og flere måder med eksempler.

Hvis du kun leder efter at læse en fil, skal du følge dette vejledningslink – Java Read File Text

Måder at gøre Java, læs fil linje for linje

  • BufferedReader
  • Scannerklasse
  • Brug af filer
  • RandomAccessFile

Lad os starte med eksempel

Vi vil se Java læse tekstfilen linje for linje eksempel en efter en anden metode.

Det første eksempel kan du se et skærmbillede af projektstrukturen. Og output vil være det samme for alle eksempler, fordi du bruger den samme fil.

Læs linje ved hjælp af BufferedReader

Brug readLine() i BufferedReader metode til at læse fil linje for linje til streng. readLine() metoden returnerer null i slutningen af ​​filen. Se nedenstående enkle eksempel på, hvordan du læser fil linje for linje med BufferedReader.

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class FileReading {

    public static void main(String[] args) {

        try {
            BufferedReader reader = new BufferedReader(new FileReader(
                    "samplefile.txt"));
            String line = reader.readLine();

            while (line != null) {
                System.out.println(line);
                // read next line
                line = reader.readLine();
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Output: Første linje
Anden linje

Scanner

Her hvordan java læser filen linje for linje scanner eksempel. Åbn filen og udskriv indholdet linje for linje.

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class FileReading {

    public static void main(String[] args) {

        try {
            Scanner scanner = new Scanner(new File("samplefile.txt"));
            while (scanner.hasNextLine()) {
                System.out.println(scanner.nextLine());
            }
            scanner.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

Brug af Files Class

Files-klassen er en hjælpeklasse, der indeholder forskellige nyttige metoder. En readAllLines-metode, der bruges til at læse alle fillinjerne i en liste med strenge.

I et eksempel er det en return a-liste, så du skal køre en for-løkke for at få teksten linje for linje. Se nedenfor java læse linjer fra tekstfil eksempel. I outputtet kan du se, at den sidste linje er en liste.

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;


public class FileReading {

    public static void main(String[] args) {
        try {

            List<String> allLines = Files.readAllLines(Paths.get("samplefile.txt"));
            for (String line : allLines) {
                System.out.println(line);
            }
            System.out.println("Read line list " + allLines);
        } catch (IOException e) {
            e.printStackTrace();

        }
    }
}

Output: 1 linje – Java-læsning
2 Linje – Liste data
Læs linjeliste [1 linje – Java læst, 2 linje – listedata]

RandomAccessFile

Brug en RandomAccessFile read mode og readLine metode til at læse fil linje for linje.

import java.io.IOException;
import java.io.RandomAccessFile;


public class FileReading {

    public static void main(String[] args) {
        try {
            RandomAccessFile file = new RandomAccessFile("samplefile.txt", "r");
            String str;
            while ((str = file.readLine()) != null) {
                System.out.println(str);
            }
            file.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Spørgsmål: Hvordan Java læser tekstfil linje for linje i Array?

Svar :Brug af Files Class-metoder til at læse tekst linje for linje vil være en meget nem måde at gøre det på. Bare konverter listen til Array som nedenstående kode.

String[] arrayLines = allLines.toArray(new String[0]);

Komplet kode

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;


public class FileReading {

    public static void main(String[] args) {
        try {

            List<String> allLines = Files.readAllLines(Paths.get("samplefile.txt"));
            String[] arrayLines = allLines.toArray(new String[0]);
            System.out.println("Array " + arrayLines);
        } catch (IOException e) {
            e.printStackTrace();

        }
    }
}

Output: Array [Ljava.lang.String;@3d24753a

Kommenter nedenfor, hvis du er i tvivl og forslag eller eksempler.

Bemærk: Dette eksempel (Projekt) er udviklet i IntelliJ IDEA 2018.2.6 (Community Edition)
JRE:11.0.1
JVM:OpenJDK 64-Bit Server VM af JetBrains s.r.o
macOS 10.14.1

Java version 11

Alle Java læser fil linje for linje er i Java 11, så det kan ændre sig på anderledes end Java 9 eller 10 eller opgraderede versioner.|


Java tag