第1种方法可以,但由于文件可能尺寸较大,无法一次性全部读入内存,还要用到分块读入、写。
普通办法是:
打开输入文件
打开输出文件(另一个文件名)
分块将输入文件内容读入,读入当前块遇到要删除字符在内存中删除
将当前块写到输出文件
依此处理所有块
关闭输出文件
关闭输入文件
删除输入文件或改名
将输出文件改名成输入文件
对于文件来说,在其中删除或添加内容是比较繁琐的工作。
1、打开Sublime Text软件,新建一个C语言文件,然后导入C语言库
2、接下来新建C语言的main函数,对文件的 *** 作都会在main函数中进行
3、接下来调用C语言的fopen函数对文件进行打开 *** 作
4、当打开文件以后就可以通过fgetc函数读取文件里面的内容
除非采用特殊的方式,否则是不可能实现这种效果的。文件结构是不可能只把其中一部分删除掉,你要把后面的部分搬移到对应的hole上。
通常数据库文件中可以实现删除某掉记录,所采用的方法有,1、设置固定长度的数据结构,文件中每一项的长度是固定,通过在文件中对应项上修改删除标记位来达到删除数据的目的。 2、采用日志记录分析,文件的访问是通过日志来进行的,日志描述文件的状态,也就是说删除 *** 作时记录在日志内,由日志负责提供一个虚拟的文件。
通常楼主的这种要求,我们的做法是:1、在文件中,把要删除的部分后面的内容搬移到删除位置,调用api设置文件结尾位置。 2、如果要删除的东西很零散,搬移的效率会很低,会采用内存数据结构记录,然后再dump到硬盘上。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)