Mit NSFileHandle können n Zeichen am Ende der Datei mithilfe von truncateFileAtOffset relativ einfach entfernt werden.Daten mit NSFileHandle überschreiben
-(void)removeCharacters:(int)numberOfCharacters fromEndOfFile:(NSFileHandle*)fileHandle {
unsigned long long fileLength = [fileHandle seekToEndOfFile];
[fileHandle truncateFileAtOffset:fileLength - numberOfCharacters];
}
jedoch entfernt Zeichen von der Vorderseite der Datei scheint nicht möglich, ohne alle übrigen Daten in den Speicher und überschreibt die Datei und dann schreiben die restlichen Daten zurück in die Datei kopieren zu müssen.
Dieser Code funktioniert, aber wird eine Haftung mit großen Dateien werden. Was vermisse ich?
Im Idealfall würde Ich mag Lage sein replaceCharactersInRange zu tun: withdata:
Dies ist eine nette Lösung. Ich würde vorschlagen, die Signatur der Methode zu aktualisieren: - (void) removeCharacters: (unsigned long long) numberOfCharacters fromBeginningOfFile: (NSFileHandle *) fileHandle { – LMVogel