Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
免费且随时可用的二进制格式,用于Java中自己的应用程序_Java_Binaryfiles_File Format - Fatal编程技术网

免费且随时可用的二进制格式,用于Java中自己的应用程序

免费且随时可用的二进制格式,用于Java中自己的应用程序,java,binaryfiles,file-format,Java,Binaryfiles,File Format,是否有我可以免费使用并长期维护的“通用”二进制格式?我正在用Java编写一个游戏,我考虑编写自己的二进制格式来保存地图,但后来我想:也许有一些解决方案可以使用 我所说的“通用二进制格式”是指允许我保存任何公共结构(字符串、int、浮点、双精度、自定义结构,如Vector3f-3浮点值作为一个对象等)的格式,它将节省空间、RAM和CPU,并将解析器(和保存程序)用Java编写 有这样的吗?还是我必须写自己的格式?看一看 ,也有很多协议缓冲区。这些插件包括转换为Xml/JSon等的实用程序、编辑器

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

我所说的“通用二进制格式”是指允许我保存任何公共结构(字符串、int、浮点、双精度、自定义结构,如Vector3f-3浮点值作为一个对象等)的格式,它将节省空间、RAM和CPU,并将解析器(和保存程序)用Java编写

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

看一看

  • ,也有很多协议缓冲区。这些插件包括转换为Xml/JSon等的实用程序、编辑器等

还有各种性能比较,例如

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