我需要把尽可能多的信息放进一个小文件中。在这种情况下,数据采用逗号分隔格式,所有值都存储为2dp小数(没有标题)。
我已经看过了,我的理解是,我需要的所有字符都是使用我目前使用的标准.txt文件中的ASCII (每个字符1字节)存储的。显然,ASCII有256个可能的值,这比我需要的要多得多--我只需要16个字符就可以度过难关。
我能把我的数据保存在某种4位文本文件中吗?我将使用c#创建文件(所有谷歌搜索结果都是关于创建文本文件的建议,而不是如何制作更小的“字体”文本)。这样做最终会节省空间吗?我可以在发送之前拉链任何东西,但是任何关于降低文件大小的建议都将不胜感激。
发布于 2019-02-05 09:46:12
我认为这个问题是合理的,但答案是,你强加的逻辑条件没有任何解决办法的余地。
因此,如果您可以为您的自定义结构避免CSV结构,您可以保存一些东西,但是您需要它,它几乎决定了您的解决方案。剩下的唯一变量是如何对文本进行编码,但不能在8位以下对文本进行编码,您只需使用较高的值,如Unicode (16位)。
我不会评论使用压缩,因为你已经提到,你正在寻找替代答案,你知道这一点。
发布于 2019-02-05 09:35:20
它将被一段c#代码读取的文件
因此,您正在控制序列化格式。您可以选择任何您喜欢的格式。
节省空间和重用现有代码的一种快速方法是压缩CSV。Gzip是内置的,但它很弱。你可以使用7-Zip库。7-Zip算法是目前最先进的算法.If将消除由小数点和大部分使用字符0-9造成的冗余。它不会删除100%,但99%(?)
您可以通过使用更好的格式来提高效率。您可以使用BinaryReader/Writer
轻松地编写完全自定义的东西。
协议缓冲区比较简单,而且非常紧凑。
https://stackoverflow.com/questions/54513060
复制相似问题