文件的大小和字符串的大小差异,为什么呢?

时间:2016-09-12 07:37:26

标签: c#

我发现字符串的大小与文件大小之间存在奇怪的大小差异,为什么会这样,以及如何解决此问题?

这就是我获取字符串大小的方法:

int bytesInStr = Encoding.Unicode.GetByteCount(str);

最初我想创建一个大小的文件。所以在我的循环中,我计算了所有书写字符串的总大小:

totalSize+=bytesInStr

但文件的大小减少了两倍左右。

2 个答案:

答案 0 :(得分:2)

您的文件使用的编码与您用于获取字符串字节数的编码不同。您需要对两者使用相同的内容(例如Encoding.Unicode

答案 1 :(得分:1)

Luaan所说的是完全正确的,但即使你匹配编码,也会有一点点差异。首先是因为文件摘要和未在流中读取的属性,其次,可能是因为文件系统导致碎片或压缩。如果您打开文件的属性窗口,磁盘大小和原始大小不同,这一点很明显。为什么?那需要的不仅仅是我的知识。 希望它有所帮助。