logo

Dažādi teksta faila lasīšanas veidi Java

Java ir vairāki veidi, kā rakstīt un lasīt teksta failu. tas ir nepieciešams, strādājot ar daudzām lietojumprogrammām. Ir vairāki veidi, kā lasīt vienkārša teksta failu Java, piem. teksta faila lasīšanai varat izmantot programmu FileReader, BufferedReader vai Scanner. Katra utilīta nodrošina kaut ko īpašu piem. BufferedReader nodrošina datu buferizāciju ātrai lasīšanai, un skeneris nodrošina parsēšanas iespēju.

Metodes:



  1. Izmantojot BufferedReader klase
  2. Izmantojot Skeneru klase
  3. Failu lasītāja klases izmantošana
  4. Visa faila lasīšana sarakstā
  5. Lasiet teksta failu kā virkni

Mēs varam arī izmantot gan BufferReader, gan skeneri, lai lasītu teksta failu rindiņu pa rindiņai Java valodā. Pēc tam Java SE 8 ievieš vēl vienu Stream klasi java.util.stream.Stream kas nodrošina slinku un efektīvāku failu lasīšanas veidu.

Padoms Piezīme: Lai labāk izprastu kodus, arī iesācēji ir izvairījušies no laba koda rakstīšanas prakses, piemēram, straumju skalošanas/aizvēršanas, izņēmumu apstrādes utt.

Apspriedīsim katru no iepriekš minētajām metodēm dziļāk un, pats galvenais, ieviešot tās, izmantojot tīru Java programmu.



1. BufferedReader klase teksta faila lasīšanai

Šī metode nolasa tekstu no rakstzīmju ievades straumes. Tas nodrošina buferi efektīvai rakstzīmju, masīvu un līniju lasīšanai. Var norādīt bufera izmēru vai izmantot noklusējuma izmēru. Noklusējums ir pietiekami liels lielākajai daļai mērķu. Parasti katrs lasītāja lasīšanas pieprasījums izraisa atbilstošu rakstzīmju vai baitu straumes lasīšanas pieprasījumu. Tāpēc ir ieteicams BufferedReader ietīt ap jebkuru lasītāju, kura lasīšanas () darbības var būt dārgas, piemēram, FileReaders un InputStreamReaders, kā parādīts tālāk:

Sintakse

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

Piemērs



Java


stīgu savienošana



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

>

>

Izvade

If you want to code refer to techcodeview.com>

2. FileReader klase teksta faila lasīšanai

Ērtības klase rakstzīmju failu lasīšanai. Šīs klases konstruktori pieņem, ka noklusējuma rakstzīmju kodējums un noklusējuma baitu bufera lielums ir piemēroti.

Šajā klasē definētie konstruktori ir šādi:

    FileReader (faila fails): izveido jaunu failu lasītāju, ņemot vērā failu lasīšanai no FileReader (FileDescriptor fd): izveido jaunu FileReader, ņemot vērā FileDescriptor, kas jālasa no FileReader (virknes faila nosaukums): izveido jaunu FileReader, ņemot vērā faila nosaukumu. failu, no kura lasīt

Piemērs

Java

kas ir īpašs raksturs




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

>

>

Izvade

If you want to code refer to techcodeview.com>

3. Skenera klase teksta faila lasīšanai

Vienkāršs teksta skeneris, kas var parsēt primitīvus veidus un virknes, izmantojot regulāras izteiksmes. Skeneris sadala savu ievadi marķieros, izmantojot norobežotāju modeli, kas pēc noklusējuma atbilst atstarpēm. Iegūtos marķierus pēc tam var pārvērst dažāda veida vērtībās, izmantojot dažādas nākamās metodes.

1. piemērs: Izmantojot cilpas

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

>

>

Izvade

If you want to code refer to techcodeview.com>

2. piemērs: Neizmantojot cilpas

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

>

>

Izvade

If you want to code refer to techcodeview.com>

4. Visa faila lasīšana sarakstā

Lasīt visas rindiņas no faila. Šī metode nodrošina, ka fails tiek aizvērts, kad visi baiti ir nolasīti vai tiek parādīta I/O kļūda vai cits izpildlaika izņēmums. Faila baiti tiek dekodēti rakstzīmēs, izmantojot norādīto rakstzīmju kopu.

Sintakse:

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

Šī metode kā līnijas izbeigšanas punktus atpazīst:

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

Piemērs

datu bāzes dizains dbms

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

>

>

Izvade

If you want to code refer to techcodeview.com>

5. Lasiet teksta failu kā virkni

Piemērs

padarīt sh skriptu izpildāmu

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

>

>

Izvade

If you want to code refer to techcodeview.com>