logo

Različni načini branja besedilne datoteke v Javi

V Javi obstaja več načinov pisanja in branja besedilne datoteke. to je potrebno pri delu s številnimi aplikacijami. Obstaja več načinov za branje datoteke z navadnim besedilom v Javi, npr. za branje besedilne datoteke lahko uporabite FileReader, BufferedReader ali Scanner. Vsak pripomoček ponuja nekaj posebnega, npr. BufferedReader omogoča medpomnjenje podatkov za hitro branje, Scanner pa omogoča razčlenjevanje.

Metode:



  1. Uporaba Razred BufferedReader
  2. Uporaba Razred optičnega bralnika
  3. Uporaba razreda File Reader
  4. Branje celotne datoteke na seznamu
  5. Branje besedilne datoteke kot niza

Za branje besedilne datoteke vrstico za vrstico v Javi lahko uporabimo tudi BufferReader in Scanner. Nato Java SE 8 uvede še en razred Stream java.util.stream.Stream ki zagotavlja len in učinkovitejši način branja datoteke.

Nasvet Opomba: Praksam pisanja dobre kode, kot je izpiranje/zapiranje tokov, obravnavanje izjem itd., so se izogibali tudi začetniki, da bi kode bolje razumeli.

Razpravljajmo o vsaki od zgornjih metod globlje in, kar je najpomembneje, z njihovo implementacijo prek čistega programa Java.



1. Razred BufferedReader za branje besedilne datoteke

Ta metoda bere besedilo iz toka vnosa znakov. Omogoča medpomnilnik za učinkovito branje znakov, nizov in vrstic. Velikost vmesnega pomnilnika je lahko podana ali pa se lahko uporabi privzeta velikost. Privzeta vrednost je dovolj velika za večino namenov. Na splošno vsaka zahteva za branje bralnika povzroči, da se izvede ustrezna zahteva za branje temeljnega toka znakov ali bajtov. Zato je priporočljivo, da BufferedReader ovijete okoli katerega koli Readerja, katerega operacije read() so lahko drage, kot sta FileReaders in InputStreamReaders, kot je prikazano spodaj, kot sledi:

Sintaksa

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

Primer



Java


bash dolžina niza



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

>

>

Izhod

If you want to code refer to techcodeview.com>

2. Razred FileReader za branje besedilne datoteke

Priročen razred za branje znakovnih datotek. Konstruktorji tega razreda predpostavljajo, da sta privzeto kodiranje znakov in privzeta velikost medpomnilnika bajtov ustrezna.

Konstruktorji, definirani v tem razredu, so naslednji:

    FileReader(File file): Ustvari nov FileReader, glede na FileReader za branje iz FileReader(FileDescriptor fd): Ustvari nov FileReader, glede na FileDescriptor za branje iz FileReader(String fileName): Ustvari nov FileReader, glede na ime datoteke datoteko za branje

Primer

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

>

>

Izhod

If you want to code refer to techcodeview.com>

3. Razred optičnega bralnika za branje besedilne datoteke

Preprost skener besedila, ki lahko razčleni primitivne vrste in nize z uporabo regularnih izrazov. Scanner razdeli svoj vnos na žetone z uporabo vzorca ločila, ki se privzeto ujema s presledkom. Nastale žetone je mogoče nato pretvoriti v vrednosti različnih vrst z uporabo različnih naslednjih metod.

Primer 1: Z uporabo zank

Java




niz v polje 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());> >}> }>

>

>

Izhod

If you want to code refer to techcodeview.com>

Primer 2: Brez uporabe zank

Java




linux mint cimet vs mate
// 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());> >}> }>

>

>

Izhod

If you want to code refer to techcodeview.com>

4. Branje celotne datoteke na seznamu

Preberi vse vrstice iz datoteke. Ta metoda zagotavlja, da se datoteka zapre, ko so prebrani vsi bajti ali pride do V/I napake ali druge izjeme med izvajanjem. Bajti iz datoteke so dekodirani v znake z uporabo navedenega nabora znakov.

Sintaksa:

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

Ta metoda prepozna naslednje kot zaključke vrstic:

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

Primer

Java




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

>

>

Izhod

If you want to code refer to techcodeview.com>

5. Branje besedilne datoteke kot niza

Primer

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

>

>

Izhod

If you want to code refer to techcodeview.com>

linearno iskanje v Javi