2015-11-23 5 views
0

J'essaie d'ajouter du texte au début de mon fichier texte. J'essaie actuellement de créer NSFileHandle et de chercher à fileOffset, mais il écrase mes données (comme prévu).Joindre du texte au début du fichier

Comment puis-je l'ajouter au début?

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

NSString* eegFileName = [NSString stringWithFormat:@"%@/%@", documentsDirectory, self.EEGFileName]; 

NSString* content = [NSString stringWithFormat:@"numberOfSamples: %d", numberOfSamples]; 

NSFileHandle *myHandle = [NSFileHandle fileHandleForWritingAtPath:eegFileName]; 
[myHandle seekToFileOffset:0]; 
[myHandle writeData:[content dataUsingEncoding:NSUTF8StringEncoding]]; 
+0

Il semble que vous devez faire une copie de votre fichier de contenu avant (à un 'NSString'), puis combiner l'ajouter au nouveau contenu à ajouter au début, puis d'écrire le fichier: http://stackoverflow.com/questions/18084853/how-to-insert-data-to-text-file-with-using-nsfilehandle – Larme

+0

Ouais, j'ai déjà trouvé ça. Pas rapide, ni élégant, mais fonctionne. – izik461

+0

En effet, mais selon une question liée à la précédente, c'est le seul moyen: http://stackoverflow.com/questions/4593418/inserting-a-string-at-a-specified-line-in-text-file -using-objectif-c – Larme

Répondre

0

Je n'ai pas trouvé une solution élégante et rapide, mais toujours une solution.

NSString *path = //Your file 
NSMutableString *contents = [NSMutableString stringWithContentsOfFile:txtFilePath encoding:NSUTF8StringEncoding error:NULL]; 

[contents insertString:@"Some string to insert" atIndex:0]; 
[contents writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL];