Я использую небольшой регистратор, в котором я пишу в TXT-файл.
Я хотел, чтобы последнее событие было в начале файла, но у меня проблемы с тем, чтобы заставить это работать. Все примеры в Интернете используют «fileHandle.seekToEndOfFile ()» для записи в конец файла.
Вот что у меня есть:
private static func writeToFile(text: String) {
guard let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first else { return }
guard let writePath = NSURL(fileURLWithPath: path).appendingPathComponent(Logger.folderName) else { return }
let fileManager = FileManager.default
try? fileManager.createDirectory(atPath: writePath.path, withIntermediateDirectories: true)
let file = writePath.appendingPathComponent(Logger.fileName)
if !fileManager.fileExists(atPath: file.path) {
do {
try "".write(toFile: file.path, atomically: true, encoding: String.Encoding.utf8)
} catch _ {
}
}
let msgWithLine = text + "\n"
do {
let fileHandle = try FileHandle(forWritingTo: file)
//fileHandle.seekToEndOfFile()
fileHandle.write(msgWithLine.data(using: .utf8)!)
fileHandle.closeFile()
} catch {
print("Error writing to file \(error)")
}
}
С помощью этого кода я пишу в первой строке, но, тем не менее, я всегда переписываю то, что находится в первой строке.
Как я могу изменить это так, чтобы все, что находится в начале, было перенесено в строку ниже, а затем записано новое содержимое в первой строке?
Спасибо !!