因此,我最近在玩耍,并嘗試生成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個(gè)字節(jié),而1GB約為1,073,741,824字節(jié),因此,寫入單個(gè)UTF8字符1,073,741,824次將導(dǎo)致文件大小約為1GB。我運(yùn)行了我的小程序,并且按預(yù)期的那樣,它開始減慢速度并消耗內(nèi)存。我最終過早地殺死了它,然后去檢查文件的大小,好奇我走了多遠(yuǎn)。令我震驚的是,該文件高達(dá)13GB。我不確定它有多大。也許我編碼錯(cuò)了。也許存在某種與瘋狂的內(nèi)存泄漏相關(guān)的錯(cuò)誤。我很困惑。為什么我的文件這么大?我是誤解了編碼還是數(shù)學(xué)?
- 1 回答
- 0 關(guān)注
- 170 瀏覽
添加回答
舉報(bào)
0/150
提交
取消