هناك طرق التالية لقراءة سطر الملف سطراً.
- فئة القارئ المؤقت
- فئة الماسح الضوئي
استخدام فئة BufferedReader
يعد استخدام فئة Java BufferedRedaer الطريقة الأكثر شيوعًا وبساطة لقراءة ملف سطرًا تلو الآخر في Java. تنتمي إلى java.io طَرد. توفر فئة Java BufferedReader طريقة readLine() لقراءة سطر الملف سطرًا. توقيع الطريقة هو :
public String readLine() throws IOException
الأسلوب يقرأ سطر من النص. تقوم بإرجاع سلسلة تحتوي على محتويات السطر. يجب إنهاء السطر بأي من تغذية الأسطر (' ') أو حرف الإرجاع (' ').
مثال على قراءة ملف سطرًا تلو الآخر باستخدام فئة BufferedReader
في المثال التالي، تتم قراءة Demo.txt بواسطة فئة FileReader. تقرأ طريقة readLine() لفئة BufferedReader الملف سطرًا تلو الآخر، ويتم إلحاق كل سطر بـ StringBuffer، متبوعًا بتغذية الأسطر. يتم بعد ذلك إخراج محتوى StringBuffer إلى وحدة التحكم.
للحلقة في ج
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(); } } }
انتاج:
استخدام فئة الماسح الضوئي
جافا الماسح الضوئي توفر الفئة طرقًا أكثر فائدة مقارنةً بفئة BufferedReader. توفر فئة Java Scanner طريقة nextLine() لتسهيل محتوى الملف سطرًا تلو الآخر. تقوم أساليب nextLine () بإرجاع نفس السلسلة مثل طريقة readLine (). يمكن لفئة الماسح الضوئي أيضًا قراءة ملف من InputStream.
مثال على قراءة سطر ملف سطرًا باستخدام فئة الماسح الضوئي
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(); } } }
انتاج: