我正在尝试将我的空间数据从表写入文件。但在写入磁盘之前,我需要知道磁盘上数据的确切大小。例如,假设我正在使用以下代码写入磁盘:
FileOutputStream fos = new FileOutputStream("t.tmp",false);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeInt(gid);
oos.writeUTF(fullname);
oos.writeInt(d.shape.length);
oos.write(d.shape);
oos.close();
fos.close();
我在想磁盘上的文件大小等于:
size= 4B {for gid, int} + fullname.getBytes.length() {string} + 4B {d.shape.length, int} + d.shape.length
但实际上,这与磁盘上的实际文件大小有很大不同。
我还注意到,即使使用 ObjectOutputstream 创建一个空文件也会导致磁盘上有 4B 空间。
有关如何计算磁盘上文件大小的任何帮助?
(我不能将数据写入磁盘然后读取实际大小。这会降低性能。相反,我需要根据存储在内存中的数据值来计算磁盘上的数据大小。)