基本上我想将数据写入特定位置的文件,并且不希望将数据加载到内存中以进行排序。例如,如果我有一个文件:
FILE.TXT
Andy dsoza Arpit Raj Karishma Shah Pratik Mehta Zppy andre
我想插入一个联系人Barbie patel
然后我会在每行之后读取文件中的第一个字母,所以芭比应该在Arpit之后和Karishma之前插入所以编辑后的文件应该是:
FILE.TXT
Andy dsoza Arpit Raj Barbie Patel Karishma Shah Pratik Mehta Zppy andre
但是fseek
驱使我找到那个位置,但是当我使用fprintf
/ fwrite
/ putc
时,我不会帮助我插入。它替换了字节,但没有在该特定字节之前插入。
如果我将来有很多联系人,那么将所有数据加载到内存中并将其整理出来并不是一件好事。
答案 0 :(得分:3)
如果不将文件加载到内存中,您将无法直接插入文件。如何管理更长的文件取决于有效的设计方法。
一种方法是使用不同的文件。
答案 1 :(得分:3)
您无法在文件中间插入数据。您必须首先阅读文件中从该点到结尾的所有内容,覆盖然后附加您阅读的内容。