We want to save a text
string in to user phone. Copy in to viewDidLoad.
let file = "write.txt"
let text = "This is example text" 
if let dir = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true).first {
                    let path = NSURL(fileURLWithPath: dir).URLByAppendingPathComponent(file)        
                    do {
                        try text.writeToURL(path, atomically: false, encoding: NSUTF8StringEncoding)
                    }
                    catch {/* error handling here */}
                }
To check if data write or not, we
read file and set to a textview.
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString
        let path = documentsPath.stringByAppendingPathComponent("write.txt")
        var read : String = ""
     do {
            try read = NSString(contentsOfFile: path,
encoding: NSUTF8StringEncoding) as String
            gi.text = read
            gi.font = UIFont.italicSystemFontOfSize(17)
            gi.textColor = UIColor.blueColor()
            gi.textAlignment = NSTextAlignment.Center
             }
        catch let error as NSError {
            // print("ERROR : reading from file \(fileName)
: \(error.localizedDescription)")
        }
Run to see result.
When practical, we use
to write to lines, new line will below old line, that easy to read for use.
This function below write data
in to new line.
func write(content: String, _ fileName: String) {
     let contentToAppend =
content+"\n"
     let filePath = NSHomeDirectory() + "/Documents/" + fileName
   if let fileHandle = NSFileHandle(forWritingAtPath: filePath) {
 fileHandle.seekToEndOfFile()
fileHandle.writeData(contentToAppend.dataUsingEncoding(NSUTF8StringEncoding)!)
   }
        else {     
            do {
                try contentToAppend.writeToFile(filePath, atomically: true, encoding: NSUTF8StringEncoding)
            } catch {
                print("Error creating \(filePath)")
            }
        }
    }

No comments:
Post a Comment