如果我有一个字符串“abcde”,我将其保存在 file1.txt 中,将“abc”保存在 file2.txt 中,将“de”保存在 file3.txt 中,那么 file2.txt 和 file3.txt 的大小总和是否为确切地等于file1.txt吗?
我尝试了一下,它们似乎是相等的,但也许差异太小以至于不会出现在仅仅 2 个文件上,但将信息分成一千个文件会产生差异。
我之所以问这个问题,是因为我正在为大学编写一个程序,我的算法会创建很多包含信息的文本文件。我的教授告诉我将所有信息放在一个文件中以节省空间,但拥有多个文件更有条理,也更易于编码。
在 Linux Mint 上进行测试,如果有所不同,使用的语言是 c++。
先感谢您。
答案1
你所看到的只是数据大小而不是尺寸在磁盘上。
数据在磁盘上的分配单位取决于磁盘的格式化方式。最常见的大小是 4K (4096) 或 512。数据之后直到最后一个分配单元末尾的空间完全被浪费了。
所以你的教授是对的:将数据集中在一个文件中将减少浪费的空间,除非文件的数据恰好是分配单元的倍数(除非有计划,否则这种情况很少发生)。