Стратегии вставки в середину файла с помощью Swift - PullRequest
0 голосов
/ 05 июля 2019

Если у меня есть файл, который структурирован следующим образом:

1234
12345
12345679101112
hello
world

Какие стратегии мне нужны, чтобы позволить мне заменить строку 1234 на, скажем, 123456?Примечательно, что данные в каждой строке не имеют фиксированной длины и могут быть произвольно длинными.

Я рассмотрел загрузку всего файла в память и выполнение операции там, но мой файл слишком великвписаться в память.Я также рассмотрел разделение файла на две части, удаление ненужной строки, добавление новой строки и повторное объединение файлов.Но это кажется излишним, и добавляет в действие большую сложность и время обработки.

Я работаю в Swift и протестировал API FileHandle, но единственный метод записи, доступный дляme is write(_:), который 1. устарел, а 2. перезаписывает данные файла, а не вставляет их.

Если я попытаюсь write(_:) 123456чтобы заменить 1234, я должен получить что-то вроде:

123456345
12345679101112
hello
world

(перезаписать новую строку и часть следующей строки).

Это не то поведение, которое яищу.Итак, я не уверен, какой API мне следует искать для моего предполагаемого поведения, которое также не считается устаревшим.

Существуют ли общие стратегии для решения такого рода проблем (я готов реализовать один из них самесли нужно)?В частности, есть ли способ сделать это с помощью Swift?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...