java 文件内容排序_在Java中对2个大型文本文件进行排序的最佳方法是什么?
我正在構(gòu)建一個簡單的
Java應(yīng)用程序,涉及從csv文件中讀取信息. csv文件中的信息以這種形式出現(xiàn):
"ID","Description"
"AB","Some sort of information for AB"
"AC","Some sort of information for AC"
我需要讓用戶在按ID排序的控制臺中打印出描述,id或兩者.最簡單的解決方案是使用CSV庫(如opencsv)解析文件,并將這些字符串放在TreeMap中,然后打印TreeMap的內(nèi)容. TreeMap中的鍵是ID,值是描述.
但是CSV文件可能很大.它可能是5 GB,并且將5GB的字符串加載到TreeMap中會導(dǎo)致內(nèi)存不足錯誤.為了處理大文件,我可以使用外部合并排序?qū)ξ募M(jìn)行排序.有一次,我得到了排序文件,我可以通過簡單地讀取文件將文件內(nèi)容打印到控制臺中.
外部合并排序肯定比將文件內(nèi)容加載到TreeMap要慢得多.我正在考慮檢測文件大小.如果文件大小超過可用內(nèi)存,那么我將使用外部合并排序.否則,我將把文件的內(nèi)容加載到TreeMap中.
但是,這意味著將有兩個單獨(dú)的代碼塊執(zhí)行2種不同的排序.因此增加了需要維護(hù)的代碼量.如果您要編寫此應(yīng)用程序,您是否會考慮編寫2個單獨(dú)的代碼代碼來處理小型csv文件和單獨(dú)的大型csv文件.或者您是否只使用外部合并排序?qū)ξ募M(jìn)行排序,而不管文件大小如何?
或者這種方法有替代方案嗎?
謝謝.
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的java 文件内容排序_在Java中对2个大型文本文件进行排序的最佳方法是什么?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle不维护java_宣布 Jav
- 下一篇: java读取dcm影像文件_使用dcmt