Write a file on iOS

How to write a file in iOS? I am trying to do this with the following code, but I am doing something wrong:

char *saves = "abcd"; NSData *data = [[NSData alloc] initWithBytes:saves length:4]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"MyFile"]; [data writeToFile:appFile atomically:YES]; 

I created the file MyFile.txt on resources.

+68
file ios iphone nsbundle
Apr 11 2018-11-11T00:
source share
4 answers

Your code works on my end, I just tested it. Where do you check your changes? Use the path to the Documents folder. To get the path -

 NSLog(@"%@",documentsDirectory); 

and copy the path from the console, and then open finder and press Cmd + shift + g and paste the path here, and then open the file

+25
Apr 11 2018-11-11T00:
source share

Maybe this is good for you.

 //Method writes a string to a text file -(void) writeToTextFile{ //get the documents directory: NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; //make a file name to write the data to using the documents directory: NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt", documentsDirectory]; //create content - four lines of text NSString *content = @"One\nTwo\nThree\nFour\nFive"; //save content to the documents directory [content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil]; } //Method retrieves content from documents directory and //displays it in an alert -(void) displayContent{ //get the documents directory: NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; //make a file name to write the data to using the documents directory: NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt", documentsDirectory]; NSString *content = [[NSString alloc] initWithContentsOfFile:fileName usedEncoding:nil error:nil]; //use simple alert from my library (see previous post for details) [ASFunctions alert:content]; [content release]; } 
+107
Apr 11 2018-11-11T00:
source share

Swift

 func saveFile() { let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) let documentsDirectory = paths[0] as! String let fileName = "\(documentsDirectory)/textFile.txt" let content = "Hello World" content.writeToFile(fileName, atomically: false, encoding: NSUTF8StringEncoding, error: nil) } func loadFile() { let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) let documentsDirectory = paths[0] as! String let fileName = "\(documentsDirectory)/textFile.txt" let content: String = String(contentsOfFile: fileName, encoding: NSUTF8StringEncoding, error: nil)! println(content) } 

Swift 2

 func saveFile() { let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) let documentsDirectory = paths[0] let fileName = "\(documentsDirectory)/textFile.txt" let content = "Hello World" do{ try content.writeToFile(fileName, atomically: false, encoding: NSUTF8StringEncoding) }catch _ { } } func loadFile()->String { let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) let documentsDirectory = paths[0] let fileName = "\(documentsDirectory)/textFile.txt" let content: String do{ content = try String(contentsOfFile: fileName, encoding: NSUTF8StringEncoding) }catch _{ content="" } return content; } 

Swift 3

 func saveFile() { let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) let documentsDirectory = paths[0] let fileName = "\(documentsDirectory)/textFile.txt" let content = "Hello World" do{ try content.write(toFile: fileName, atomically: false, encoding: String.Encoding.utf8) }catch _ { } } func loadFile()->String { let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) let documentsDirectory = paths[0] let fileName = "\(documentsDirectory)/textFile.txt" let content: String do{ content = try String(contentsOfFile: fileName, encoding: String.Encoding.utf8) } catch _{ content="" } return content; } 
+9
Jul 18 '15 at 21:37
source share

Try to do

 NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"MyFile"]; 

but

 NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"MyFile.txt"]; 
+7
Apr 11 2018-11-11T00:
source share



All Articles