我有一个大的文本文件。
每次我的程序运行时,它都需要在第一行中读取,删除它,并将数据放回文件的底部。
是否有一种方法可以完成此任务而不需要读取文件的每个部分?
学习这个伪代码的例子将是很好的:
我试图避免阅读所有内容的原因是因为程序每天都在特定的时间运行。我不希望每次文件越大,延迟越长。
我找到的所有解决方案都要求程序处理整个文件。如果C++文件流无法完成这一任务,那么对于我的C++程序来说,无论哪种选择都是快速高效的执行,我都准备好了。
谢谢。
发布于 2012-05-14 02:03:27
不幸的事实是,现代操作系统上没有任何文件系统能够做到这一点。从文件开头删除某些内容的唯一方法是将内容复制到新文件,但第一位除外。根本没有办法精确地做你想做的事。
但希望你能重新设计一下。也许每个条目都可以是一个数据库中的记录--然后重新排序可以非常有效地完成。或者该文件可能包含固定大小的记录,您可以使用第二个索引文件来指定记录顺序,因此重新排列文件只是更新索引的问题。
https://stackoverflow.com/questions/10576771
复制相似问题