2012-08-16 6 views
1

J'ai réussi à écrire dans un fichier texte, mais je veux pouvoir ajouter plus de données au fichier texte sans écraser le contenu actuel du fichier texte. Donc, en d'autres termes, je veux écrire à la fin du fichier à chaque fois afin qu'il n'efface pas le contenu actuel. Le code suivant est ce que j'ai fait jusqu'à présent mais il écrase à chaque fois et écrit au début, je ne suis pas sûr de savoir comment l'écrire jusqu'à la fin. Sur la base de ce code, le contenu actuel dans le fichier texte ressemble à:Écrire à la fin du fichier

June 
July 
August 
September 

Je veux être en mesure d'ajouter ce qui suit par exemple

June 
July 
August 
September 
October 

Est-ce que quelqu'un sait comment cela? Merci!

-(void) writeToTextFile{ 
NSArray *paths = NSSearchPathForDirectoriesInDomains 
(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt", 
         documentsDirectory]; 
//create content - four lines of text 
NSString *content = @"June\nJuly\nAugust\nSeptember"; 
//save content to the documents directory 
[content writeToFile:fileName 
      atomically:NO 
      encoding:NSStringEncodingConversionAllowLossy 
       error:nil]; 

} 

Répondre

-1

Utilisez cette méthode pour écrire à la fin du fichier:

-(void) writeToTextFileWithString:(NSString *) content name:(NSString *) file { 

    //TODO: Disable logs at release time 

    content = [NSString stringWithFormat:@"%@ ||| %@\n",content,[[NSDate date] description]]; 

    //get the documents directory: 
    NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; 
    NSString *fileName = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.txt",file]]; 

    NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:fileName]; 
    if (fileHandle){ 

    [fileHandle seekToEndOfFile]; 
    [fileHandle writeData:[content dataUsingEncoding:NSUTF8StringEncoding]]; 
    [fileHandle closeFile]; 
    } 
    else{ 

    [content writeToFile:fileName 
       atomically:NO 
       encoding:NSStringEncodingConversionAllowLossy 
        error:nil]; 
    } 
} 
+0

Vous voulez juste prendre la chaîne et ajouter à la fin de celui-ci? –

+0

Vous essayez ce code en donnant votre chaîne à la méthode –

+0

J'ai essayé ce code et cela fonctionne mais il n'enregistre pas les changements définitivement? d'autres suggestions? Merci –

4

Vous devez NSFileHandle

NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:fileName]; 
[fileHandle seekToEndOfFile]; 
[fileHandle writeData:[content dataUsingEncoding:NSUTF8StringEncoding]]; 
+0

Pouvez-vous s'il vous plaît donner un exemple de la façon d'intégrer cela dans mon code? merci –

+0

il suffit simplement de remplacer "[content writeToFile: fileName atomiquement: NO codage: NSStringEncodingConversionAllowLossy erreur: nil];" avec les codes ci-dessus –

+0

Je vais essayer immédiatement et faire un rapport. Merci –

Questions connexes