Der er følgende måder at læse en fil på linje for linje.
- Bufret læserklasse
- Scanner klasse
Brug af BufferedReader Class
Brug af Java BufferedRedaer-klassen er den mest almindelige og enkle måde at læse en fil linje for linje i Java. Det hører til java.io pakke. Java BufferedReader-klassen giver readLine()-metoden til at læse en fil linje for linje. Signaturen på metoden er:
frø vs sporer
public String readLine() throws IOException
Metoden læser en tekstlinje. Det returnerer en streng, der indeholder indholdet af linjen. Linjen skal afsluttes af en hvilken som helst linjefeed (' ') eller carriage return (' ').
Eksempel på at læse en fil linje for linje ved hjælp af BufferedReader klasse
samling java
I det følgende eksempel læses Demo.txt af FileReader-klassen. ReadLine()-metoden i BufferedReader-klassen læser fil linje for linje, og hver linje tilføjet til StringBuffer, efterfulgt af en linjefeed. Indholdet af StringBuffer udsendes derefter til konsollen.
import java.io.*; public class ReadLineByLineExample1 { public static void main(String args[]) { try { File file=new File('Demo.txt'); //creates a new file instance FileReader fr=new FileReader(file); //reads the file BufferedReader br=new BufferedReader(fr); //creates a buffering character input stream StringBuffer sb=new StringBuffer(); //constructs a string buffer with no characters String line; while((line=br.readLine())!=null) { sb.append(line); //appends line to string buffer sb.append(' '); //line feed } fr.close(); //closes the stream and release the resources System.out.println('Contents of File: '); System.out.println(sb.toString()); //returns a string that textually represents the object } catch(IOException e) { e.printStackTrace(); } } }
Produktion:
Brug af Scanner-klassen
Java Scanner klasse giver flere hjælpemetoder sammenlignet med BufferedReader-klassen. Java Scanner-klassen leverer metoden nextLine() til at lette linje for linje af filens indhold. NextLine()-metoderne returnerer den samme streng som readLine()-metoden. Scanner-klassen kan også læse en fil fra InputStream.
Eksempel på at læse en fil linje for linje ved hjælp af Scanner-klasse
postbud
import java.io.*; import java.util.Scanner; public class ReadLineByLineExample2 { public static void main(String args[]) { try { //the file to be opened for reading FileInputStream fis=new FileInputStream('Demo.txt'); Scanner sc=new Scanner(fis); //file to be scanned //returns true if there is another line to read while(sc.hasNextLine()) { System.out.println(sc.nextLine()); //returns the line that was skipped } sc.close(); //closes the scanner } catch(IOException e) { e.printStackTrace(); } } }
Produktion: