java - 在文件中有效地存储易于解析的数据?

标签 java logging storage

我需要将易于解析的数据存储在文件中,作为数据库支持的解决方案的替代方案(无需辩论)。由于它将存储大量数据,因此最好是轻量级语法。这不一定需要人类可读,但应该是可解析的。请注意,将会有多种类型的字段/列,其中一些可能会被使用,而另一些则不会

根据我在没有数据库的情况下的有限经验,我看到了几种选择,但都存在问题

  • CSV - 从技术上讲我可以做到这一点,而且它非常轻。然而,解析将是一个问题,如果我想添加一列,那就很糟糕了。多语言支持尚不确定,主要是人们自己的自定义解析器
  • XML - 从许多方面来看,除了解析和开销之外,这都是完美的解决方案。这是很多标签,会生成一个巨大的文件,解析会非常消耗资源。然而,几乎所有语言都支持 XML
  • JSON - 这是中间立场,但我真的不想这样做,因为它的语法很尴尬,而且解析并不简单。语言支持尚不确定。

所以都有各自的缺点。但是,当尝试以语言支持和较小的文件大小为目标时,什么是最好的呢?

最佳答案

怎么样sqlite ?这将允许您基本上将“数据库”嵌入到您的应用程序中,但不需要单独的数据库后端。

此外,如果您稍后最终使用数据库后端,那么切换应该相当容易。

如果这不合适,我建议使用一种类似 DBM 的存储来进行键值查找,例如 Berkely DB 或 tdb。

关于java - 在文件中有效地存储易于解析的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3411613/

相关文章:

java - 以编程方式添加时无法识别带重音的 GWT 字符

Python 日志记录 : propagate messages of level below current logger level

Symfony 2 : Injecting logger for specific channel/handler to services

jquery - 为 jQuery 的 $.data() 存储多个值的最佳方法是什么?

java - 我的 servlet.war 的 URL 是什么?

java - SMTP 设置不适用于 Hotmail

firebase - 用于按需移动应用下载的音频文件存储技术

laravel - 如何在 Laravel 7 中使用 Livewire 显示存储路径中的图像

java - 为什么我们需要两次在 tomcat logging.properties 中写入处理程序?

java - 使用 Log4J 2 进行 JNDI 变量查找时如何设置默认值?