我发现字符串的大小与文件大小之间存在奇怪的大小差异,为什么会这样,以及如何解决此问题?
这就是我获取字符串大小的方法:
int bytesInStr = Encoding.Unicode.GetByteCount(str);
最初我想创建一个大小的文件。所以在我的循环中,我计算了所有书写字符串的总大小:
totalSize+=bytesInStr
但文件的大小减少了两倍左右。
答案 0 :(得分:2)
您的文件使用的编码与您用于获取字符串字节数的编码不同。您需要对两者使用相同的内容(例如Encoding.Unicode
。
答案 1 :(得分:1)
Luaan所说的是完全正确的,但即使你匹配编码,也会有一点点差异。首先是因为文件摘要和未在流中读取的属性,其次,可能是因为文件系统导致碎片或压缩。如果您打开文件的属性窗口,磁盘大小和原始大小不同,这一点很明显。为什么?那需要的不仅仅是我的知识。 希望它有所帮助。