Что происходит быстрее и лучше?Чтение XML и чтение CSV-файла java
Чтение XML с помощью DocumentBuilder или CSV с помощью FileReader/BufferReader в Java?
Что происходит быстрее и лучше?Чтение XML и чтение CSV-файла java
Чтение XML с помощью DocumentBuilder или CSV с помощью FileReader/BufferReader в Java?
Я согласен с грубыми ошибками и даффимо. Я просто хотел добавить следующее.
Как уже было сказано, оба формата данных, поэтому подумайте о своих данных. Насколько велика и сложна ли она? Если он иерархичен, забудьте о CSV. Если он не очень большой, сделайте то же самое.
Думая о XML, помните, что DOM - это не единственный способ разобрать его. SAX быстрее. И вы можете использовать Digester (построенный поверх SAX), который позволяет вам определять соответствие между вашей моделью данных и XML-схемой с помощью XML, а затем выполняется очень быстро.
Если данные очень большие, и ваш парсер должен быть очень быстрым, проверьте JSON. Он должен быть быстрее XML, потому что он менее подробный.
Я не знаю о производительности, но одним из факторов является легкость поиска стандартных, хорошо используемых парсеров. Теперь в JDK встроен парсер XML, но я не знаю парсер CSV. Я думаю, что XML гораздо более вездесущ, чем CSV.
Другим фактором является природа данных: XML предлагает иерархическую структуру, в то время как CSV предлагает таблицы. Я думаю, что «лучший» способ читать в данных больше зависит от чего-то подобного.
Хотя я не могу говорить о более быстрых построениях и простоте обслуживания, а также производительности; хотя я предполагаю, что это действительно зависит от того, как вы используете анализируемые документы; например чтение узлов документа будет быстрее, чем csv, загрузка документа может быть быстрее в CSV. Все, что сказал, CSV - зло, а это означает, что это очень неустойчивое хранилище данных. XML имеет больше накладных расходов, но является способом, более стабильным.
RELATED_QUESTION:When and Why is XML preferable to CSV?
Чтение файла CSV с FileReader
классом быстрее, так как читатель только читает файл и разбор значений является довольно простым шагом здесь.
С другой стороны, чтение файла XML с использованием DOMReader
или SAXParser
(вы не читаете документы, используя класс строителя, он используется для создания документов XML, насколько мне известно) медленнее, поскольку обработка XML данные - гораздо более сложный шаг. Файлы XML, как правило, очень многословны.
Преимущество XML-файла заключается в том, что вы можете уделять больше внимания проверке данных (при использовании определения XSD для определения структуры XML), то есть при тестировании значений правильности при чтении файла. Также можно редактировать XML-файл без каких-либо дальнейших объяснений, поскольку имена элементов XML (и возможные комментарии) говорят больше, чем полуколоны в файле CSV.
Мне было интересно то же самое. Я просто сделал грубую проверку с помощью Excel для чтения и анализа простого файла с 8000 записей. Загрузка XML составляла ~ 8 секунд. Нагрузка CSV заняла менее 1 секунды.
Я считаю, что CSV - это абсолютно правильный выбор для простых табличных данных, и он переносится намного реже. XML является БОЛЬШИМ, для более сложных сценариев ...
Это очень широкий вопрос - ответ зависит от множества факторов, таких как размер документа и какая обработка, которую вы пытаетесь сделать. Можете ли вы дать более подробную информацию о том, какую проблему вы пытаетесь решить? – 2010-12-05 15:03:44