Er zijn de volgende manieren om een bestand regel voor regel te lezen.
- GebufferdeReader-klasse
- Scannerklasse
BufferedReader-klasse gebruiken
Het gebruik van de klasse Java BufferedRedaer is de meest gebruikelijke en eenvoudige manier om een bestand regel voor regel in Java te lezen. Het is van java.io pakket. De klasse Java BufferedReader biedt de methode readLine() om een bestand regel voor regel te lezen. De handtekening van de methode is:
public String readLine() throws IOException
De methode leest een regel tekst. Het retourneert een string die de inhoud van de regel bevat. De regel moet worden beëindigd door een regelinvoer (' ') of een regelterugloop (' ').
Voorbeeld van het regel voor regel lezen van een bestand met de klasse BufferedReader
In het volgende voorbeeld wordt Demo.txt gelezen door de FileReader-klasse. De methode readLine() van de klasse BufferedReader leest het bestand regel voor regel, en elke regel wordt toegevoegd aan StringBuffer, gevolgd door een regelfeed. De inhoud van de StringBuffer wordt vervolgens naar de console uitgevoerd.
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(); } } }
Uitgang:
De klasse Scanner gebruiken
Java Scanner klasse biedt meer hulpprogrammamethoden vergeleken met de klasse BufferedReader. De klasse Java Scanner biedt de methode nextLine() om de inhoud van bestanden regel voor regel te vergemakkelijken. De nextLine()-methoden retourneren dezelfde String als de readLine()-methode. De klasse Scanner kan ook een bestandsvorm InputStream lezen.
Voorbeeld van het regel voor regel lezen van een bestand met behulp van de Scanner-klasse
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(); } } }
Uitgang: