2011-04-17 81 views
1

我需要使用Java解析70mb數據,並且我目前有一個xml文檔(1級,無子項),其中每個文檔都有多個字段。Java:關於數據表示的問題

我想知道是否應該用一個更簡單的文本文件替換它,其中每行都是文檔,並且這些字段用逗號分隔。

這是否會顯着提高性能?如果我有,例如,4GB數據呢?

感謝

+1

您首先選擇XML的原因是什麼? – 2011-04-17 16:10:53

+0

@Oli Charlesworth不是。 – user680406 2011-04-17 16:11:49

+1

@user:那麼如果沒有迫切的理由使用XML(例如,您不使用現有工具生成/解析它,並且您有合適的CSV處理庫),則不要使用它。 – 2011-04-17 16:13:06

回答

0

它可能是更有效地使用比XML文件中的文本文件,如果你有機會到一個地步,你無法適應整個數據集到內存中一次。在這一點上,能夠逐行解析文本文件會比XML方法 (我相信將整個文件加載到內存中)更好。 根據Robin Green XML,只有在使用DOM-SAX解析流時纔會一次解析整個文件。

還有其他的方法來堅持這樣的數據:
Database
可這個數據庫中的數據來表示? Java對大多數數據庫系統的支持很簡單,你只需要安裝合適的庫來完成。

Java Properties
一種替代是java性質系統。這可以讓你把所有的數據放在一個文件上,然後加載它們,當加載它時,java解析文件。

+1

這是不正確的 - 如果你使用DOM-SAX解析流,XML解析只能一次讀取整個文件。 – 2011-04-17 16:21:06