文件长度的计算
在Windows下建立文件夹
length_of_file

在文件夹中新建文件并观察文件大小
| 文件名 | 内容 | 文件大小 |
|---|---|---|
| 00_null | null(空文件) | 0 |
| 01 | 1 | 3 |
| 02 | 12 | 4 |
| 03 | 123 | 5 |
| 04 | 1234 | 6 |
| 05 | 12345 | 7 |
| 06 | 123456 | 8 |


观察发现 文件长度比内容大2,是字符串终结符 '/0' 占据了两个字节的大小吗?
在utf-8的 标准中 一个数字占据一个字节,'/0' 占据两个字节,换行符占据两个字节。1+'/0'+'/n' 一共占据五个字节。那么10行是占据50个字节吗?
test

我们发现

也就是说,换行符'/n'替代了'/0',作为字符串的终结符。
与此同时


这表明,Windows中文件的索引和文件是分开存放的。
那么,为什么占用空间为0呢?
磁盘存储格式NTFS
NTFS有个Master File Table(MFT)
NTFS盘里的文件,都至少有一条记录在MFT里,这条记录里存着这个文件的一些信息,比如修改时间、权限、文件名、文件在什么地方啊等等这些。这个记录,一般是固定大小的,通常1K。如果一个文件很小,那完全可以把整个文件的内容,放在这个文件对应MFT的记录里。就没必要再另找一个地方把内容写下。
评论区