V Jave existuje viacero spôsobov písania a čítania textového súboru. je to potrebné pri práci s mnohými aplikáciami. Existuje niekoľko spôsobov, ako prečítať obyčajný textový súbor v Jave, napr. na čítanie textového súboru môžete použiť FileReader, BufferedReader alebo Scanner. Každá utilita poskytuje niečo špeciálne napr. BufferedReader poskytuje ukladanie údajov do vyrovnávacej pamäte pre rýchle čítanie a skener poskytuje možnosť analýzy.
Metódy:
- Použitím Trieda BufferedReader
- Použitím Trieda skenera
- Použitie triedy File Reader
- Čítanie celého súboru v zozname
- Čítajte textový súbor ako reťazec
Na čítanie textového súboru riadok po riadku v jazyku Java môžeme použiť aj BufferReader aj Scanner. Potom Java SE 8 predstavuje ďalšiu triedu Stream java.util.stream.Stream ktorý poskytuje lenivý a efektívnejší spôsob čítania súboru.
Tip Poznámka: Praktiky písania dobrého kódu, ako je preplachovanie/zatváranie prúdov, spracovanie výnimiek atď., sa vyhýbali pre lepšie pochopenie kódov aj začiatočníkmi.
Poďme diskutovať o každej z vyššie uvedených metód do hlbšej hĺbky a čo je najdôležitejšie, ich implementáciou prostredníctvom čistého programu Java.
1. Trieda BufferedReader na čítanie textového súboru
Táto metóda číta text z prúdu znakov. Vytvára vyrovnávaciu pamäť pre efektívne čítanie znakov, polí a riadkov. Veľkosť vyrovnávacej pamäte môže byť špecifikovaná alebo môže byť použitá predvolená veľkosť. Predvolená hodnota je dostatočne veľká na väčšinu účelov. Vo všeobecnosti každá požiadavka na čítanie vykonaná čítačkou spôsobí, že sa vytvorí zodpovedajúca požiadavka na čítanie základného znakového alebo bajtového toku. Preto sa odporúča zabaliť BufferedReader okolo akéhokoľvek Readera, ktorého operácie read() môžu byť nákladné, ako sú FileReaders a InputStreamReaders, ako je uvedené nižšie:
Syntax
BufferedReader in = new BufferedReader(Reader in, int size);>
Príklad
Java
program v jave
// 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);> > }> }> |
>
>
Výkon
If you want to code refer to techcodeview.com>
2. Trieda FileReader na čítanie textového súboru
Trieda pohodlia na čítanie znakov. Konštruktéri tejto triedy predpokladajú, že predvolené kódovanie znakov a predvolená veľkosť bajtovej vyrovnávacej pamäte sú vhodné.
Konštruktory definované v tejto triede sú nasledovné:
- FileReader(File file): Vytvorí nový FileReader, zadaný súbor na čítanie z FileReader(FileDescriptor fd): Vytvorí nový FileReader, daný FileDescriptor na čítanie z FileReader(String fileName): Vytvorí nový FileReader, daný názvom súboru súbor na čítanie
Príklad
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);> > }> }> |
>
>
Výkon
If you want to code refer to techcodeview.com>
3. Trieda skenera na čítanie textového súboru
Jednoduchý textový skener, ktorý dokáže analyzovať primitívne typy a reťazce pomocou regulárnych výrazov. Skener rozdeľuje svoj vstup na tokeny pomocou vzoru oddeľovača, ktorý štandardne zodpovedá medzerám. Výsledné tokeny sa potom môžu previesť na hodnoty rôznych typov pomocou rôznych ďalších metód.
Príklad 1: S použitím slučiek
Java
ako inicializovať pole v jave
// 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());> > }> }> |
>
>
funkcia volania javascriptu z html
Výkon
If you want to code refer to techcodeview.com>
Príklad 2: Bez použitia slučiek
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());> > }> }> |
>
>
Výkon
If you want to code refer to techcodeview.com>
4. Čítanie celého súboru v zozname
Prečítajte si všetky riadky zo súboru. Táto metóda zaisťuje, že súbor sa zatvorí, keď sa prečítajú všetky bajty alebo sa vyvolá chyba I/O alebo iná výnimka za behu. Bajty zo súboru sa dekódujú na znaky pomocou zadanej znakovej sady.
Syntax:
public static List readAllLines(Path path,Charset cs)throws IOException>
Táto metóda rozpoznáva nasledovné ako zakončovače riadkov:
u000D followed by u000A, CARRIAGE RETURN followed by LINE FEED u000A, LINE FEED u000D, CARRIAGE RETURN>
Príklad
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());> > }> }> |
>
>
Výkon
If you want to code refer to techcodeview.com>
5. Čítajte textový súbor ako reťazec
Príklad
Java
ako získať hru holub na android
// 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);> > }> }> |
>
>
Výkon
If you want to code refer to techcodeview.com>