كيفية قراءة ملف نصي كبير سطرًا بسطر في Java دون تسرب للذاكرة؟
مرحبًا بالجميع! أنا مبتدئ في Java، واجهت مشكلة عند قراءة ملف سجلات كبير (حوالي 500 ميجابايت). أحتاج إلى معالجة كل سطر على حدة، ولكن عندما أحاول قراءة الملف بأكمله مرة واحدة، يتعطل البرنامج مع خطأ OutOfMemoryError.
إليك كيف حاولت القيام بذلك:
```java
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
File file = new File("bigfile.log");
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
// معالجة السطر
System.out.println(line);
}
scanner.close();
}
}
```
لكن بالنسبة للملفات الكبيرة، يعمل هذا ببطء شديد ويستهلك الكثير من الذاكرة. لقد سمعت عن BufferedReader، لكنني لا أفهم كيفية استخدامه بشكل صحيح. أرجو إرشادي حول كيفية قراءة ملف سطرًا بسطر بكفاءة دون تحميل كل شيء في الذاكرة دفعة واحدة؟ يُفضل مع مثال كود.
الوسوم: java, أداء