| 
 | 
因为文件在硬盘上都是线性的存储的。比如,你看到的样子(编辑器显示出来的样子)是这样: 
AAA  BBB  
CCC  DDD 
但是实际它是这样的: 
AAA  BBB {CRLF} CCC  DDD 
其中CRLF是换行符。 
 
所以,如果你需要在第一行插入 XXX。需要变成 
AAA  BBB XXX {CRLF} CCC  DDD 
 
那么{CRLF} CCC DDD 就需要挨着逐个向后移动。 
 
操作系统底层没有包含这样“上层”的操作。都是靠“上层”程序员去完成的。 
你看到的所有“支持列插入”的编辑器,比如 UltraEdit ,记事本,或者 VS code 这些。他们全部,全部,都是先把文件的内容放入内存,在内存中插入新的一列。 
每次插入一列,后面的行的内容全部逐个后移。 
最后,把插入好的内容,全部,重新写入到文件里。 
 
所以,你要想实现这样的结构,也只能如此。 |   
 
 
 
 |