logo

Różne sposoby czytania pliku tekstowego w Javie

Istnieje wiele sposobów zapisywania i odczytywania pliku tekstowego w Javie. jest to wymagane w przypadku wielu aplikacji. Istnieje kilka sposobów odczytania zwykłego pliku tekstowego w Javie, np. do odczytania pliku tekstowego możesz użyć FileReadera, BufferedReadera lub Scannera. Każde narzędzie zapewnia coś specjalnego, np. BufferedReader zapewnia buforowanie danych w celu szybkiego odczytu, a Scanner zapewnia możliwość analizowania.

Metody:



  1. Za pomocą Klasa BufferedReader
  2. Za pomocą Klasa skanera
  3. Korzystanie z klasy File Reader
  4. Odczyt całego pliku na liście
  5. Przeczytaj plik tekstowy jako String

Możemy także użyć BufferReadera i Scannera do odczytania pliku tekstowego linia po linii w Javie. Następnie Java SE 8 wprowadza kolejną klasę Stream java.util.stream.Stream co zapewnia leniwy i bardziej efektywny sposób odczytu pliku.

Wskazówka: Unikano praktyk pisania dobrego kodu, takich jak opróżnianie/zamykanie strumieni, obsługa wyjątków itp., aby zapewnić lepsze zrozumienie kodów również przez początkujących.

Omówmy każdą z powyższych metod głębiej i, co najważniejsze, wdrażając je za pomocą czystego programu Java.



1. Klasa BufferedReader do odczytu pliku tekstowego

Ta metoda odczytuje tekst ze strumienia wejściowego znaków. Robi bufor do wydajnego odczytu znaków, tablic i linii. Można określić rozmiar bufora lub zastosować rozmiar domyślny. Wartość domyślna jest wystarczająco duża dla większości celów. Ogólnie rzecz biorąc, każde żądanie odczytu skierowane do czytnika powoduje wysłanie odpowiedniego żądania odczytu bazowego strumienia znaków lub bajtów. Dlatego zaleca się owinięcie BufferedReadera wokół dowolnego czytnika, którego operacje read() mogą być kosztowne, takiego jak FileReaders i InputStreamReaders, jak pokazano poniżej w następujący sposób:

Składnia

BufferedReader in = new BufferedReader(Reader in, int size);>

Przykład



Jawa


metoda podciągu w Javie



// Java Program to illustrate Reading from FileReader> // using BufferedReader Class> // Importing input output classes> import> java.io.*;> // Main class> public> class> GFG {> >// main driver method> >public> static> void> main(String[] args)>throws> Exception> >{> >// File path is passed as parameter> >File file =>new> File(> >'C:UserspankajDesktop est.txt'>);> >// Note: Double backquote is to avoid compiler> >// interpret words> >// like est as (ie. as a escape sequence)> >// Creating an object of BufferedReader class> >BufferedReader br> >=>new> BufferedReader(>new> FileReader(file));> >// Declaring a string variable> >String st;> >// Condition holds true till> >// there is character in a string> >while> ((st = br.readLine()) !=>null>)> >// Print the string> >System.out.println(st);> >}> }>

>

>

Wyjście

If you want to code refer to techcodeview.com>

2. Klasa FileReader do odczytu pliku tekstowego

Wygodna klasa do odczytu plików znakowych. Konstruktory tej klasy zakładają, że domyślne kodowanie znaków i domyślny rozmiar bufora bajtowego są odpowiednie.

Konstruktory zdefiniowane w tej klasie są następujące:

    FileReader(File file): Tworzy nowy FileReader, biorąc pod uwagę plik do odczytania z FileReader(FileDescriptor fd): Tworzy nowy FileReader, biorąc pod uwagę FileDescriptor do odczytu z FileReader(String fileName): Tworzy nowy FileReader, biorąc pod uwagę nazwę plik do odczytu

Przykład

Jawa




// Java Program to Illustrate reading from> // FileReader using FileReader class> // Importing input output classes> import> java.io.*;> // Main class> // ReadingFromFile> public> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)>throws> Exception> >{> >// Passing the path to the file as a parameter> >FileReader fr =>new> FileReader(> >'C:UserspankajDesktop est.txt'>);> >// Declaring loop variable> >int> i;> >// Holds true till there is nothing to read> >while> ((i = fr.read()) != ->1>)> >// Print all the content of a file> >System.out.print((>char>)i);> >}> }>

>

Acore procesu Androida

>

Wyjście

If you want to code refer to techcodeview.com>

3. Klasa skanera do odczytu pliku tekstowego

Prosty skaner tekstu, który potrafi analizować typy pierwotne i ciągi znaków przy użyciu wyrażeń regularnych. Scanner dzieli swoje dane wejściowe na tokeny przy użyciu wzorca ograniczników, który domyślnie dopasowuje białe znaki. Powstałe tokeny można następnie przekonwertować na wartości różnych typów przy użyciu różnych metod next.

Przykład 1: Z wykorzystaniem pętli

Jawa




// Java Program to illustrate> // reading from Text File> // using Scanner Class> import> java.io.File;> import> java.util.Scanner;> public> class> ReadFromFileUsingScanner {> >public> static> void> main(String[] args)>throws> Exception> >{> >// pass the path to the file as a parameter> >File file =>new> File(> >'C:UserspankajDesktop est.txt'>);> >Scanner sc =>new> Scanner(file);> >while> (sc.hasNextLine())> >System.out.println(sc.nextLine());> >}> }>

>

>

Wyjście

If you want to code refer to techcodeview.com>

Przykład 2: Bez użycia pętli

Jawa




// Java Program to illustrate reading from FileReader> // using Scanner Class reading entire File> // without using loop> import> java.io.File;> import> java.io.FileNotFoundException;> import> java.util.Scanner;> public> class> ReadingEntireFileWithoutLoop {> >public> static> void> main(String[] args)> >throws> FileNotFoundException> >{> >File file =>new> File(> >'C:UserspankajDesktop est.txt'>);> >Scanner sc =>new> Scanner(file);> >// we just need to use  as delimiter> >sc.useDelimiter(>''>);> >System.out.println(sc.next());> >}> }>

>

wiek Rihanny

>

Wyjście

If you want to code refer to techcodeview.com>

4. Odczyt całego pliku na liście

Przeczytaj wszystkie linie z pliku. Ta metoda gwarantuje, że plik zostanie zamknięty po odczytaniu wszystkich bajtów lub zgłoszonym błędzie we/wy lub innym wyjątku czasu wykonywania. Bajty z pliku są dekodowane na znaki przy użyciu określonego zestawu znaków.

Składnia:

public static List readAllLines(Path path,Charset cs)throws IOException>

Ta metoda rozpoznaje następujące elementy jako terminatory linii:

u000D followed by u000A, CARRIAGE RETURN followed by LINE FEED u000A, LINE FEED u000D, CARRIAGE RETURN>

Przykład

Jawa




jak zablokować reklamy YouTube na Androidzie
// Java program to illustrate reading data from file> // using nio.File> import> java.io.*;> import> java.nio.charset.StandardCharsets;> import> java.nio.file.*;> import> java.util.*;> public> class> ReadFileIntoList {> >public> static> List> >readFileInList(String fileName)> >{> >List lines = Collections.emptyList();> >try> {> >lines = Files.readAllLines(> >Paths.get(fileName),> >StandardCharsets.UTF_8);> >}> >catch> (IOException e) {> >// do something> >e.printStackTrace();> >}> >return> lines;> >}> >public> static> void> main(String[] args)> >{> >List l = readFileInList(> >'C:UserspankajDesktop est.java'>);> >Iterator itr = l.iterator();> >while> (itr.hasNext())> >System.out.println(itr.next());> >}> }>

>

>

Wyjście

If you want to code refer to techcodeview.com>

5. Przeczytaj plik tekstowy jako String

Przykład

Jawa




// Java Program to illustrate> // reading from text file> // as string in Java> package> io;> import> java.nio.file.*;> ;> public> class> ReadTextAsString {> >public> static> String readFileAsString(String fileName)> >throws> Exception> >{> >String data =>''>;> >data =>new> String(> >Files.readAllBytes(Paths.get(fileName)));> >return> data;> >}> >public> static> void> main(String[] args)>throws> Exception> >{> >String data = readFileAsString(> >'C:UserspankajDesktop est.java'>);> >System.out.println(data);> >}> }>

>

>

Wyjście

If you want to code refer to techcodeview.com>