Det er flere måter å skrive og lese en tekstfil på i Java. dette er nødvendig når du håndterer mange søknader. Det er flere måter å lese en ren tekstfil i Java, f.eks. du kan bruke FileReader, BufferedReader eller Scanner for å lese en tekstfil. Hvert verktøy gir noe spesielt, f.eks. BufferedReader gir bufring av data for rask lesing, og Scanner gir parsing.
Metoder:
- Ved hjelp av Bufret Leser-klasse
- Ved hjelp av Skanner klasse
- Bruker klassen File Reader
- Leser hele filen i en liste
- Les en tekstfil som streng
Vi kan også bruke både BufferReader og Scanner for å lese en tekstfil linje for linje i Java. Så introduserer Java SE 8 en annen Stream-klasse java.util.stream.Stream som gir en lat og mer effektiv måte å lese en fil på.
Tips Merk: Praksis med å skrive god kode som spyling/lukking av strømmer, unntakshåndtering etc, har blitt unngått for bedre forståelse av koder også for nybegynnere.
La oss diskutere hver av metodene ovenfor til en dypere dybde og viktigst av alt ved å implementere dem via et rent java-program.
1. BufferedReader-klasse for lesing av tekstfil
Denne metoden leser tekst fra en tegninndatastrøm. Den buffer for effektiv lesing av tegn, matriser og linjer. Bufferstørrelsen kan spesifiseres, eller standardstørrelsen kan brukes. Standarden er stor nok for de fleste formål. Vanligvis forårsaker hver leseforespørsel gjort av en Reader en tilsvarende leseforespørsel av det underliggende tegnet eller bytestrømmen. Det er derfor tilrådelig å pakke en BufferedReader rundt en hvilken som helst Reader hvis read()-operasjoner kan være kostbare, for eksempel FileReaders og InputStreamReaders som vist nedenfor som følger:
Syntaks
BufferedReader in = new BufferedReader(Reader in, int size);>
Eksempel
Java
mysql liste alle brukere
// 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);> > }> }> |
>
>
Produksjon
If you want to code refer to techcodeview.com>
2. FileReader-klasse for lesing av tekstfil
Praktisk klasse for lesing av tegnfiler. Konstruktørene av denne klassen antar at standard tegnkoding og standard byte-bufferstørrelse er passende.
Konstruktører definert i denne klassen er som følger:
- FileReader(Filfil): Oppretter en ny FileReader, gitt filen som skal leses fra FileReader(FileDescriptor fd): Oppretter en ny FileReader, gitt FileDescriptor som skal leses fra FileReader(String fileName): Oppretter en ny FileReader, gitt navnet på filen. fil å lese fra
Eksempel
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);> > }> }> |
>
>
Produksjon
If you want to code refer to techcodeview.com>
3. Skannerklasse for lesing av tekstfil
En enkel tekstskanner som kan analysere primitive typer og strenger ved hjelp av regulære uttrykk. En skanner bryter inndataene inn i tokens ved hjelp av et skilletegn, som som standard samsvarer med mellomrom. De resulterende symbolene kan deretter konverteres til verdier av forskjellige typer ved å bruke de forskjellige neste metodene.
Eksempel 1: Med bruk av løkker
Java
javascript onload script
// 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());> > }> }> |
>
>
Produksjon
If you want to code refer to techcodeview.com>
Eksempel 2: Uten å bruke løkker
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());> > }> }> |
hvordan lage en matrise i java
>
>
Produksjon
If you want to code refer to techcodeview.com>
4. Leser hele filen i en liste
Les alle linjer fra en fil. Denne metoden sikrer at filen lukkes når alle byte er lest eller en I/O-feil, eller annet kjøretidsunntak, blir kastet. Byte fra filen dekodes til tegn ved å bruke det angitte tegnsettet.
Syntaks:
public static List readAllLines(Path path,Charset cs)throws IOException>
Denne metoden gjenkjenner følgende som linjeavslutninger:
u000D followed by u000A, CARRIAGE RETURN followed by LINE FEED u000A, LINE FEED u000D, CARRIAGE RETURN>
Eksempel
Java
.net veiledning
// 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());> > }> }> |
>
>
Produksjon
If you want to code refer to techcodeview.com>
5. Les en tekstfil som streng
Eksempel
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);> > }> }> |
>
>
Produksjon
If you want to code refer to techcodeview.com>