【问题标题】:Free and ready-to-use binary formats for use with own applications in Java [closed]免费且现成的二进制格式,可与自己的 Java 应用程序一起使用 [关闭]
【发布时间】:2013-06-27 17:51:24
【问题描述】:

是否有任何可以免费使用的即用型和长期维护的“通用”二进制格式?我正在用 Java 编写游戏,并考虑编写自己的二进制格式来保存地图,但后来我想:也许有一些现成的解决方案?

“通用二进制格式”是指允许我保存任何常见结构(String、int、float、double、自定义结构,如 Vector3f - 3 个浮点值作为一个对象等)的格式,将是空格, RAM 和 CPU 效率高,并且将使用 Java 编写解析器(和保护程序)。

有这样的东西吗?还是我必须编写自己的格式?

【问题讨论】:

  • 为什么使用“二进制”格式而不是 XML?
  • 我将使用该格式来存储我的 3D 游戏的地图。可能有成百上千个对象——每个对象都包含一些属性。 XML 效率低下,提供的文件很大(XML 文件不节省空间);解析也不会很快(记住我必须解析很多浮点数和整数;将它们存储为文本不是一个好主意)。这就是为什么我在这里更喜欢二进制格式而不是 XML。
  • " (XML 文件不节省空间);" 如果您压缩它们,它们就是。此外,硬盘空间便宜。 “解析也不会很快..” 你是通过分析还是盯着茶叶来确定?不要陷入“过早优化”的陷阱。
  • "如果你压缩它们,它们就是。"是的,加载和保存地图时要执行 1 个更昂贵的操作。 :) 请记住我正在写游戏。我不想让用户等待一个“小时”来加载地图。我不想让用户在地图编辑器中按下 Ctrl+S 时等待一个“小时”。我想要一个尽可能快的解决方案。你喜欢玩每张地图都需要大量负载的游戏吗?你认为将整数和浮点值存储为纯文本真的那么有效吗?我不这么认为... :) 顺便说一句,我在这个项目中使用 XML,但用于更便宜的东西。
  • @m4tx 你可能是对的,xml 可能会更慢,但重要的是(a)你检查那是真的(b)你检查它是缓慢的主要原因,否则你可能做所有这些工作都是徒劳的(第 (b) 点对及早检查尤为重要)

标签: java binaryfiles file-format


【解决方案1】:

看看

还有各种性能比较,例如Benchmarking

【讨论】:

  • “Protocol Buffers”库看起来很有趣! :)
猜你喜欢
  • 2012-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
  • 1970-01-01
  • 2010-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多