A fájl soronkénti olvasásának a következő módjai vannak.
- BufferedReader osztály
- Szkenner osztály
BufferedReader osztály használata
A Java BufferedRedaer osztály használata a legáltalánosabb és legegyszerűbb módja a fájl soronkénti olvasásának Java nyelven. hozzátartozik java.io csomag. A Java BufferedReader osztály a readLine() metódust biztosítja a fájl soronkénti olvasásához. A módszer aláírása:
public String readLine() throws IOException
A módszer egy sor szöveget olvas be. A sor tartalmát tartalmazó karakterláncot ad vissza. A sort a soremelés (' ') vagy a kocsivissza (' ') bármelyikének be kell fejeznie.
Példa egy fájl soronkénti olvasására a BufferedReader osztály használatával
A következő példában a Demo.txt fájlt a FileReader osztály olvassa be. A BufferedReader osztály readLine() metódusa soronként olvassa be a fájlt, és minden sort hozzáfűz a StringBufferhez, majd egy soremelést. A StringBuffer tartalma ezután megjelenik a konzolon.
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(); } } }
Kimenet:
A Scanner osztály használata
Jáva Scanner osztály több segédprogramot biztosít a BufferedReader osztályhoz képest. A Java Scanner osztály biztosítja a nextLine() metódust a fájl tartalmának soronkénti leegyszerűsítésére. A nextLine() metódus ugyanazt a karakterláncot adja vissza, mint a readLine() metódus. A Scanner osztály az InputStream formátumú fájlokat is képes olvasni.
Példa egy fájl soronkénti olvasására a Scanner osztály használatával
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(); } } }
Kimenet: