将数据保存至最小文件大小 - 作为字节对象而不是文本



我的java代码生成并记录大量数据以文件为10-60fps,最多几天。每个时间点都有以下条目

timestamp(long),x坐标(int -0-2000),y坐标(int -0-1000),灰度像素值(字节),方向(短),长度(短),宽度(短),宽度(短),其他值(int)

毫不奇怪,我试图最大程度地减少已记录数据的文件大小,并希望能够为此提供最佳策略来挑选您的大脑。我已经探索了两种基本方法...编写ASCII或保存二进制对象

obj:

FileOutputStream fos = new FileOutputStream(new File(filePathString));
ObjectOutputStream fw_obj = new ObjectOutputStream(fos);
fw_obj.writeObject(aString);

txt:

FileOutputStream fos = new FileOutputStream(new File(filePathString));
Writer fw_txt = new BufferedWriter(new OutputStreamWriter(fos));
fw_txt.write(aString);

对象方法的效率不如我希望的。两者的文件尺寸大致相等。关于哪种策略应该是最好的建议,将其推向最大的意见将不胜感激。永远感激,

在我看来,最好的策略是将值转换为字节,然后将其写入文件

长 int int int byte 短 短 短 int

8 4 4 1 2 2 2 2 2 4 = 27个数据

最新更新