24 Stimmen

Wie speichere ich einen NSString als .txt-Datei im lokalen Dokumentenverzeichnis meiner Anwendung?

Wie speichere ich einen NSString als .txt-Datei im lokalen Dokumentenverzeichnis meiner Anwendung (UTF-8)?

49voto

Vladimir Punkte 169002
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory

NSError *error;
BOOL succeed = [myString writeToFile:[documentsDirectory stringByAppendingPathComponent:@"myfile.txt"]
      atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (!succeed){
    // Handle error here
}

3voto

Craig Punkte 9245

Etwa so:

NSString *homeDirectory;
homeDirectory = NSHomeDirectory(); // Get app's home directory - you could check for a folder here too.
BOOL isWriteable = [[NSFileManager defaultManager] isWritableFileAtPath: homeDirectory]; //Check file path is writealbe
// You can now add a file name to your path and the create the initial empty file

[[NSFileManager defaultManager] createFileAtPath:newFilePath contents:nil attributes:nil];

// Then as a you have an NSString you could simple use the writeFile: method
NSString *yourStringOfData;
[yourStringOfData writeToFile: newFilePath atomically: YES];

1voto

hafhadg3 Punkte 636

Können Sie NSUserDefaults verwenden

Sparen:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];

Lesen:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *myString = [prefs stringForKey:@"keyToLookupString"];

1voto

Rafa de King Punkte 38434

Er ist, wie man NSString in Documents Ordner speichern. Das Speichern von anderen Datentypen kann auch auf diese Weise realisiert werden.

- (void)saveStringToDocuments:(NSString *)stringToSave {

 NSString *documentsFolder = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
 NSString *fileName = [NSString stringWithString:@"savedString.txt"];

 NSString *path = [documentsFolder stringByAppendingPathComponent:fileName];

 [[NSFileManager defaultManager] createFileAtPath:path contents:[stringToSave dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];
}

0voto

brynbodayle Punkte 6466

Ich habe diese Methode verwendet, um einige base64-kodierte Bilddaten auf der Festplatte zu speichern. Beim Öffnen der Textdatei auf meinem Computer hatte ich immer wieder Probleme, die Daten zu lesen, da einige Zeilenumbrüche und Rückgaben automatisch hinzugefügt wurden.

Der folgende Code behebt dieses Problem:

myString = [myString stringByReplacingOccurrencesOfString:@"\n" withString:@""];
myString = [myString stringByReplacingOccurrencesOfString:@"\r" withString:@""];

// write string to disk

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X