Write a file on iOS
May be this is useful to 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:NSUTF8StringEncoding 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];}
Your code is working at my end, i have just tested it. Where are you checking your changes? Use Documents directory path. To get path -
NSLog(@"%@",documentsDirectory);
and copy path from console and then open finder and press Cmd+shift+g and paste path here and then open your file
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;}