Det finns följande sätt att läsa en fil rad för rad.
- Bufferad Reader Class
- Skannerklass
Använder BufferedReader Class
Att använda Java BufferedRedaer-klassen är det vanligaste och enklaste sättet att läsa en fil rad för rad i Java. Den tillhör java.io paket. Java BufferedReader-klassen tillhandahåller metoden readLine() för att läsa en fil rad för rad. Signaturen för metoden är:
public String readLine() throws IOException
Metoden läser en textrad. Den returnerar en sträng som innehåller radens innehåll. Linjen måste avslutas med någon av en radmatning (' ') eller vagnretur (' ').
Exempel på att läsa en fil rad för rad med klassen BufferedReader
I följande exempel läses Demo.txt av FileReader-klassen. ReadLine()-metoden för klassen BufferedReader läser filen rad för rad, och varje rad läggs till StringBuffer, följt av en radmatning. Innehållet i StringBuffer matas sedan ut till konsolen.
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:
Använder klassen Scanner
Java Scanner klass ger fler verktygsmetoder jämfört med BufferedReader-klassen. Java Scanner-klassen tillhandahåller metoden nextLine() för att underlätta rad för rad av filens innehåll. NextLine()-metoderna returnerar samma sträng som readLine()-metoden. Skannerklassen kan också läsa en fil från InputStream.
Exempel på att läsa en fil rad för rad med skannerklass
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: