logo

Įvairūs būdai, kaip skaityti tekstinį failą Java

Yra keletas būdų, kaip rašyti ir skaityti tekstinį failą Java. to reikia dirbant su daugeliu programų. Yra keletas būdų, kaip skaityti paprasto teksto failą Java, pvz. tekstiniam failui skaityti galite naudoti „FileReader“, „BufferedReader“ arba „Scanner“. Kiekviena komunalinė programa suteikia kažką ypatingo pvz. „BufferedReader“ suteikia duomenų buferį, kad būtų galima greitai nuskaityti, o skaitytuvas – analizavimo galimybę.

Metodai:



  1. Naudojant BufferedReader klasė
  2. Naudojant Skaitytuvų klasė
  3. Failų skaitytuvo klasės naudojimas
  4. Viso failo skaitymas sąraše
  5. Skaityti tekstinį failą kaip eilutę

Taip pat galime naudoti ir „BufferReader“, ir „Scanner“, norėdami skaityti tekstinį failą eilutė po eilutės „Java“. Tada „Java SE 8“ pristato kitą „Stream“ klasę java.util.stream.Stream kuri suteikia tingų ir efektyvesnį failo skaitymo būdą.

Patarimas Pastaba: Siekiant geriau suprasti kodus, taip pat buvo vengiama gero kodo rašymo praktikos, pvz., srautų praplovimas / uždarymas, išimčių tvarkymas ir kt.

Aptarkime kiekvieną iš aukščiau paminėtų metodų giliau ir, svarbiausia, įgyvendindami juos per švarią Java programą.



1. BufferedReader klasė tekstiniam failui skaityti

Šis metodas nuskaito tekstą iš simbolių įvesties srauto. Jis atlieka buferį, kad būtų galima efektyviai skaityti simbolius, masyvus ir eilutes. Gali būti nurodytas buferio dydis arba gali būti naudojamas numatytasis dydis. Numatytasis yra pakankamai didelis daugeliui tikslų. Apskritai, kiekviena skaitytuvo nuskaitymo užklausa sukelia atitinkamą pagrindinio simbolio arba baitų srauto nuskaitymo užklausą. Todėl patartina BufferedReader apvynioti aplink bet kurį skaitytuvą, kurio skaitymo () operacijos gali būti brangios, pvz., FileReaders ir InputStreamReaders, kaip parodyta toliau:

Sintaksė

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

Pavyzdys



Java


pritaikyta išimtis Java



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

>

>

Išvestis

If you want to code refer to techcodeview.com>

2. „FileReader“ klasė, skirta tekstiniam failui skaityti

Patogumo klasė, skirta skaityti simbolių failus. Šios klasės konstruktoriai mano, kad numatytoji simbolių koduotė ir numatytasis baitų buferio dydis yra tinkami.

Šioje klasėje apibrėžti konstruktoriai yra tokie:

    „FileReader“ (failo failas): sukuria naują failų skaitytuvą, atsižvelgiant į failą, kurį reikia nuskaityti iš „FileReader“ (FileDescriptor fd): Sukuria naują failų skaitytuvą, kuriam suteikiamas failo deskriptorius, kurį reikia nuskaityti iš „FileReader“ (eilutės failo pavadinimas): sukuria naują failų skaitytuvą, atsižvelgiant į failo pavadinimą. failas, iš kurio galima skaityti

Pavyzdys

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

objektas java programavime

>

>

Išvestis

If you want to code refer to techcodeview.com>

3. Skaitytuvo klasė tekstiniam failui skaityti

Paprastas teksto skaitytuvas, galintis išanalizuoti primityvius tipus ir eilutes naudodamas reguliariąsias išraiškas. Skaitytuvas suskaido įvestį į žetonus naudodamas skyriklio šabloną, kuris pagal numatytuosius nustatymus atitinka tarpą. Tada gautus žetonus galima konvertuoti į skirtingų tipų reikšmes, naudojant įvairius kitus metodus.

1 pavyzdys: Naudojant kilpas

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

>

>

Išvestis

If you want to code refer to techcodeview.com>

2 pavyzdys: Nenaudojant kilpų

Java




kas yra automatiškai prijungta 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());> >}> }>

>

>

Išvestis

If you want to code refer to techcodeview.com>

4. Viso failo skaitymas sąraše

Skaityti visas eilutes iš failo. Šis metodas užtikrina, kad failas būtų uždarytas, kai visi baitai buvo nuskaityti arba įvyksta įvesties / išvesties klaida arba kita vykdymo laiko išimtis. Failo baitai iššifruojami į simbolius naudojant nurodytą simbolių rinkinį.

Sintaksė:

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

Šis metodas atpažįsta šiuos linijos užbaigimo elementus:

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

Pavyzdys

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

>

>

Išvestis

If you want to code refer to techcodeview.com>

5. Skaityti tekstinį failą kaip eilutę

Pavyzdys

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

>

>

Išvestis

„Linux“ užduočių tvarkyklė
If you want to code refer to techcodeview.com>