Tôi đang làm việc với một tệp văn bản rất lớn (755Mb). Tôi cần sắp xếp các dòng (khoảng 1890000) và sau đó viết chúng lại trong một tệp khác.các dòng phân loại của một tệp tin rất lớn trong java
tôi đã nhận thấy rằng cuộc thảo luận mà có một tập tin khởi đầu thực sự tương tự như tôi: Sorting Lines Based on words in them as keys
Vấn đề là tôi không thể lưu trữ các dòng trong một bộ sưu tập trong bộ nhớ vì tôi nhận được một ngoại lệ Java Heap Space (ngay cả khi tôi mở rộng nó tối đa) .. (đã cố gắng!)
tôi không thể hoặc mở nó bằng excel và sử dụng các tính năng sắp xếp vì các tập tin quá lớn và nó không thể được hoàn toàn được tải ..
tôi suy nghĩ về việc sử dụng một DB .. nhưng tôi nghĩ rằng viết tất cả các dòng sau đó u se truy vấn SELECT nó quá dài về thời gian thực hiện .. tôi có sai không?
Bất kỳ gợi ý đánh giá cao Cảm ơn trước
Vâng, "quá dài" tùy thuộc vào kỳ vọng của bạn. Nếu bạn hy vọng làm điều đó trong nửa giây, nó sẽ thực sự là quá dài. Nếu bạn không ngại chờ đợi một vài giây hoặc vài phút, nó không phải là một vấn đề. Hãy thử nó, và xem nếu thời gian là hợp lý. –
Bạn sẽ có thể lưu trữ tệp trong bộ nhớ với khoảng 1 GB đống bằng cách sử dụng các phiên bản Java mới nhất. tức là với '-XX: + UseCompressedStrings' –