Yra šie būdai, kaip skaityti failą eilutė po eilutės.
- BufferedReader klasė
- Skaitytuvų klasė
BufferedReader klasės naudojimas
„Java BufferedRedaer“ klasės naudojimas yra labiausiai paplitęs ir paprasčiausias būdas nuskaityti „Java“ failą eilutę po eilutės. Tai priklauso java.io paketą. „Java BufferedReader“ klasė suteikia „readLine()“ metodą, leidžiantį skaityti failą eilutėje po eilutės. Metodo parašas yra:
public String readLine() throws IOException
Metodas nuskaito teksto eilutę. Jis grąžina eilutę, kurioje yra eilutės turinys. Eilutę turi užbaigti eilutės tiekimas („ “) arba vežimo grįžimas („ “).
Failo skaitymo eilutė po eilutės pavyzdys naudojant BufferedReader klasę
Šiame pavyzdyje Demo.txt skaito FileReader klasė. BufferedReader klasės metodas readLine() skaito failą eilutė po eilutės ir kiekviena eilutė pridedama prie StringBuffer, o po to seka eilutės tiekimas. Tada StringBuffer turinys išvedamas į konsolę.
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(); } } }
Išvestis:
Naudojant skaitytuvo klasę
Java Skaitytuvas klasė suteikia daugiau naudingumo metodų, palyginti su BufferedReader klase. „Java Scanner“ klasė suteikia nextLine() metodą, palengvinantį failo turinio eilutę po eilutės. NextLine() metodai grąžina tą pačią eilutę kaip readLine() metodas. Skaitytuvo klasė taip pat gali skaityti failo formą „InputStream“.
Failo skaitymo eilutė po eilutės pavyzdys naudojant skaitytuvo klasę
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(); } } }
Išvestis: