簡體   English   中英

讀取XML與讀取CSV文件Java

[英]Reading XML vs reading CSV file java

什么是更快更好的性能?

在Java中使用DocumentBuilder讀取XML還是使用FileReader / BufferReader讀取CSV?

我不了解性能,但是其中一個因素是易於找到標准的,使用良好的解析器。 現在,JDK中內置了一個XML解析器,但是我不知道CSV解析器。 我認為XML比CSV更加普及。

另一個因素是數據的性質:XML建議使用分層結構,而CSV建議使用表。 我認為讀取數據的“最佳”方式更多地取決於這種情況。

雖然我無法說出更快的構建和輕松的維護,也無法提高性能。 盡管我猜測這實際上取決於您如何使用所解析的文檔; 例如,讀取文檔節點會比csv更快,而以CSV格式加載文檔可能會更快。 綜上所述,CSV是邪惡的,這意味着它是高度不穩定的數據存儲。 XML有更多的開銷,但是確實更穩定。

相關文章: 什么時候以及為什么XML比CSV更可取?

使用FileReader類讀取CSV文件的速度更快,因為讀取器僅讀取文件,並且解析值是一個非常簡單的步驟。

另一方面,使用DOMReaderSAXParser讀取XML文件(據我所知,您不使用builder類讀取文檔,而是用於創建XML文檔),因為處理XML數據非常繁瑣更復雜的步驟。 XML文件通常非常冗長。

XML文件的優點是,您可以更加重視數據驗證(當使用XSD進行XML結構定義時),即在讀取文件時測試值的正確性。 另外,由於XML元素名稱(和可能的注釋)比CSV文件中的分號更重要,因此無需任何進一步說明即可編輯XML文件。

我都同意大失誤和達菲。 我只想添加以下內容。

正如已經說過的,這兩種都是數據格式,所以請考慮一下您的數據。 它有多大?有多復雜? 如果它是分層的,則不用考慮CSV。 如果不是很大,請執行相同操作。

考慮XML時,請記住DOM並不是解析它的唯一方法。 SAX更快。 而且,您可以使用Digester(基於SAX構建),該Digester允許您使用XML定義數據模型和XML模式之間的映射,然后非常快速地運行。

如果數據很大並且解析器必須非常快,請檢查JSON。 它應該比XML更快,因為它不那么冗長。

我一直在想同樣的事情。 我只是使用Excel進行了粗略的測試,以讀取和解析具有8,000條記錄的簡單文件。 XML加載大約需要8秒鍾。 CSV加載時間不到1秒。

我認為CSV是用於簡單表格數據的完全有效的選擇,並且沒有太多麻煩。 XML非常適合用於更復雜的場景...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM