如果我的文件结构如下:
1234
12345
12345679101112
hello
world
我必须采取什么策略才能将行1234
替换为123456
?值得注意的是,每行中的数据不是固定长度,可以任意长。
我已经考虑过将所有文件加载到内存中并在那里执行操作,但是我的文件太大而无法容纳到内存中。我还考虑过将文件分成两部分,删除不需要的行,追加新行,然后再次合并文件。但这似乎有点过分,并且增加了动作的复杂性和处理时间。
我正在Swift中工作,并且已经测试过FileHandle
API,但是对我来说唯一可用的写入方法是write(_:)
,其中1.已弃用,并且2.覆盖了数据而不是插入文件。
如果我尝试write(_:)
123456
来代替1234
,我最终会得到类似的东西:
123456345
12345679101112
hello
world
(覆盖换行符和下一行的一部分)。
这不是我要寻找的行为。因此,我不确定应该使用哪种API来实现预期的行为,而该行为也不会被弃用。
是否存在解决此类问题的一般策略(如果需要,我愿意自己实施其中之一)?更具体地说,有没有办法用Swift做到这一点?