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:
- Izmantojot BufferedReader klase
- Izmantojot Skeneru klase
- Failu lasītāja klases izmantošana
- Visa faila lasīšana sarakstā
- 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>