logo

Olika sätt att läsa en textfil i Java

Det finns flera sätt att skriva och läsa en textfil i Java. detta krävs när man hanterar många applikationer. Det finns flera sätt att läsa en vanlig textfil i Java t.ex. du kan använda FileReader, BufferedReader eller Scanner för att läsa en textfil. Varje verktyg ger något speciellt t.ex. BufferedReader tillhandahåller buffring av data för snabb läsning, och Scanner tillhandahåller analysförmåga.

Metoder:



  1. Använder sig av BufferedReader-klass
  2. Använder sig av Skannerklass
  3. Använder klassen File Reader
  4. Läser hela filen i en lista
  5. Läs en textfil som String

Vi kan också använda både BufferReader och Scanner för att läsa en textfil rad för rad i Java. Sedan introducerar Java SE 8 ytterligare en Stream-klass java.util.stream.Stream vilket ger ett lat och mer effektivt sätt att läsa en fil.

Tips Obs: Praxis för att skriva bra kod som att spola/stänga strömmar, undantagshantering etc, har undvikits för bättre förståelse av koder även för nybörjare.

Låt oss diskutera var och en av ovanstående metoder till ett djupare djup och viktigast av allt genom att implementera dem via ett rent java-program.



1. BufferedReader-klass för läsning av textfil

Denna metod läser text från en teckeninmatningsström. Den buffertar för effektiv läsning av tecken, arrayer och rader. Buffertstorleken kan anges, eller så kan standardstorleken användas. Standarden är tillräckligt stor för de flesta ändamål. I allmänhet orsakar varje läsbegäran som görs av en läsare att en motsvarande läsbegäran görs av det underliggande tecknet eller byteströmmen. Det är därför lämpligt att linda en BufferedReader runt alla läsare vars read()-operationer kan vara kostsamma, såsom FileReaders och InputStreamReaders som visas nedan enligt följande:

Syntax

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

Exempel



Java


vad gör ravel i python



// 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);> >}> }>

>

>

Produktion

If you want to code refer to techcodeview.com>

2. FileReader-klass för att läsa textfil

Bekvämlighetsklass för att läsa teckenfiler. Konstruktörerna för denna klass antar att standardteckenkodningen och standardbytebuffertstorleken är lämpliga.

Konstruktörer som definieras i denna klass är följande:

    FileReader(Filfil): Skapar en ny FileReader, givet filen att läsa från FileReader(FileDescriptor fd): Skapar en ny FileReader, givet FileDescriptor att läsa från FileReader(String fileName): Skapar en ny FileReader, givet namnet på fil att läsa från

Exempel

Java




// 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);> >}> }>

>

ersätt från sträng i java

>

Produktion

If you want to code refer to techcodeview.com>

3. Skannerklass för att läsa textfil

En enkel textskanner som kan analysera primitiva typer och strängar med hjälp av reguljära uttryck. En skanner delar upp sin inmatning i tokens med hjälp av ett avgränsningsmönster, som som standard matchar blanksteg. De resulterande tokens kan sedan omvandlas till värden av olika typer med hjälp av de olika följande metoderna.

Exempel 1: Med hjälp av slingor

Java




// 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());> >}> }>

>

>

Produktion

If you want to code refer to techcodeview.com>

Exempel 2: Utan att använda slingor

Java




// 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());> >}> }>

>

saira banu skådespelare

>

Produktion

If you want to code refer to techcodeview.com>

4. Läser hela filen i en lista

Läs alla rader från en fil. Denna metod säkerställer att filen stängs när alla byte har lästs eller ett I/O-fel, eller annat körtidsundantag, kastas. Byte från filen avkodas till tecken med den angivna teckenuppsättningen.

Syntax:

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

Denna metod känner igen följande som linjeavslutare:

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

Exempel

Java




python-initieringslista
// 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());> >}> }>

>

>

Produktion

If you want to code refer to techcodeview.com>

5. Läs en textfil som String

Exempel

Java




// 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);> >}> }>

>

>

Produktion

If you want to code refer to techcodeview.com>