gpt4 book ai didi

java - 开发java(文件)交换格式

转载 作者:行者123 更新时间:2023-12-01 06:41:59 25 4
gpt4 key购买 nike

我想提出一种二进制格式,用于以 POF(普通旧文件;))的形式在应用程序实例之间传递数据。

先决条件:

  1. 应该跨平台
  2. 要保存的信息包括单个 POJO 和任意 byte[](实际上是文件,POJO 将其名称存储在 String[] 中)
  3. 仅需要顺序访问
  4. 应该是检查数据一致性的一种方法
  5. 应该小而快
  6. 应该防止使用归档器+记事本的普通用户修改数据

目前,我正在使用 DeflaterOutputStream + OutputStreamWriter 以及 InflaterInputStream + InputStreamReader 来保存/恢复使用 XStream 序列化的对象,每个文件一个对象。读取器/写入器使用 UTF8。现在,需要扩展它以支持前面描述的内容。我的格式想法:

{serialized to XML object}
{delimiter}
{String file name}{delimiter}{byte[] file data}
{delimiter}
{another String file name}{delimiter}{another byte[] file data}
...
{delimiter}
{delimiter}
{MD5 hash for the entire file}
  1. 这看起来正常吗?
  2. 您会使用什么作为分隔符以及如何确定它?
  3. 在这种情况下计算 MD5 的正确方法是什么?
  4. 您建议阅读有关该主题的哪些内容?

TIA。

最佳答案

看起来很疯狂。

  • 为什么要发明一种新的文件格式?
  • 为什么要尝试只阻止愚蠢的用户更改文件?
  • 为什么使用二进制格式(难以压缩)?
  • 为什么使用接收时无法解析的格式? (接收者必须先接收整个文件,然后才能对文件进行操作。)
  • XML 已经是一种可压缩的序列化格式。因此,您正在序列化序列化格式。

关于java - 开发java(文件)交换格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/567516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com