Tôi đang đọc tệp 50G chứa hàng triệu hàng được phân tách bằng ký tự dòng mới. Hiện tại tôi đang sử dụng cú pháp sau để đọc tệpJava Cách cải thiện việc đọc tệp 50 Gigabit
String line = null;
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("FileName")));
while ((line = br.readLine()) != null)
{
// Processing each line here
// All processing is done in memory. No IO required here.
}
Vì tệp quá lớn nên mất 2 giờ để xử lý toàn bộ tệp. Tôi có thể cải thiện việc đọc tệp từ đĩa cứng sao cho hoạt động IO (Đọc) mất ít thời gian nhất. Các hạn chế với mã của tôi là tôi phải xử lý từng dòng thứ tự tuần tự.
Việc triển khai 'BufferedReader' của Java là gì? Có lẽ bạn có thể cải thiện ở đó bằng cách đọc các khối (với kích thước tối ưu cho hệ điều hành và hệ thống tệp) trong một luồng khác. –
Bạn có ý nghĩa 50 Gbit hoặc 50 Gbyte không? –