因此,我最近在玩耍,并尝试生成1GB的文件。
StreamWriter writer = new StreamWriter(@"C:\Users\parsonsj\Desktop\data.dat");
Encoding utf8enc = UTF8Encoding.UTF8;
for (int i = 0; i < 1073741824; i++) {
writer.Write(utf8enc.GetBytes("#"));
}
writer.Close();
我的想法是,由于UTF8字符为1个字节,而1GB约为1,073,741,824字节,因此,写入单个UTF8字符1,073,741,824次将导致文件大小约为1GB。
我运行了我的小程序,并且按预期的那样,它开始减慢速度并消耗内存。我最终过早地杀死了它,然后去检查文件的大小,好奇我走了多远。令我震惊的是,该文件高达13GB。
我不确定它有多大。也许我编码错了。也许存在某种与疯狂的内存泄漏相关的错误。我很困惑。
为什么我的文件这么大?我是误解了编码还是数学?
相关分类