come scrivere in modalità append per file di testo

La mia applicazione basata sulla navigazione. UItextView per le note UIViewController. Sto scrivendo i dati per il testo su file. Ora ho bisogno di scrivere in modalità append, il codice qui sotto sto cercando ma ogni volta sta scrivendo a due volte con gli stessi dati di testo, e non aggiungendo se i prossimi dati di testo su file.

- (void)saveText:(id)sender { [self.textview resignFirstResponder]; NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [documentPaths objectAtIndex:0]; NSString *documentTXTPath = [documentsDirectory stringByAppendingPathComponent:@"Notes.txt"]; NSString *savedString = textview.text; [savedString writeToFile:documentTXTPath atomically:YES]; NSFileHandle *myHandle = [NSFileHandle fileHandleForUpdatingAtPath:documentTXTPath ]; [myHandle seekToEndOfFile]; [myHandle writeData: [savedString dataUsingEncoding:NSUTF8StringEncoding]]; [myHandle closeFile]; } 

Rimuovere la seguente riga di codice

 [savedString writeToFile:documentTXTPath atomically:YES]; 

E il codice rimanente va bene. In ogni caso controlla anche il mio codice,

  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *documentTXTPath = [documentsDirectory stringByAppendingPathComponent:@"Notes.txt"]; NSString *savedString = textview.text; NSFileHandle *myHandle = [NSFileHandle fileHandleForWritingAtPath:documentTXTPath]; [myHandle seekToEndOfFile]; [myHandle writeData:[savedString dataUsingEncoding:NSUTF8StringEncoding]]; 

Prova questo funziona alla grande

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *documentTXTPath = [documentsDirectory stringByAppendingPathComponent:@"Notes.txt"]; NSString *savedString = textview.text; 

Se il file non esiste, crearlo e scrivere su file o la sua append aggiunta già alla fine del file

 NSFileManager *fileManager = [NSFileManager defaultManager]; if(![fileManager fileExistsAtPath:documentTXTPath]) { [savedString writeToFile:documentTXTPath atomically:YES]; } else { NSFileHandle *myHandle = [NSFileHandle fileHandleForWritingAtPath:documentTXTPath]; [myHandle seekToEndOfFile]; [myHandle writeData:[savedString dataUsingEncoding:NSUTF8StringEncoding]]; } 

Puoi anche fare

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *documentTXTPath = [documentsDirectory stringByAppendingPathComponent:@"Notes.text"]; NSString *content = [NSString stringWithContentsOfFile:documentTXTPath encoding:NSUTF8StringEncoding error:nil]; content = [content stringByAppendingString:data]; 

E ancora scrivere contenuti in un particolare percorso di file

 [content writeToFile:documentTXTPath atomically:YES encoding:NSUTF8StringEncoding error:nil];