Skip to content

Instantly share code, notes, and snippets.

@KentarouKanno
Last active May 12, 2016 19:47
Show Gist options
  • Save KentarouKanno/0c4c2901a5dacec34c763ae19a56444a to your computer and use it in GitHub Desktop.
Save KentarouKanno/0c4c2901a5dacec34c763ae19a56444a to your computer and use it in GitHub Desktop.
File Operation

File Operation

★ ファイルへの書き込み

let fileName = "data.txt"
let text = "abcde"

if let dir: NSString = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first {
    
    let filePath = dir.stringByAppendingPathComponent(fileName)
    
    do {
        
        try text.writeToFile(filePath, atomically: false, encoding: NSUTF8StringEncoding)
    } catch {
        //エラー処理
    }
}

★ ファイルの読み込み

let fileName = "data.txt"

if let dir: NSString = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first {
    
    let filePath = dir.stringByAppendingPathComponent(fileName)
    
    do {
        
        let text = try NSString(contentsOfFile: filePath, encoding: NSUTF8StringEncoding)
        print(text)
        
    } catch {
        //エラー処理
    }
}

★ ファイルに対して文字列を追加する(.txtの場合)

if let dir: NSString = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first {
    
    let filePath = dir.stringByAppendingPathComponent(fileName)
    
    let output = NSOutputStream(toFileAtPath: filePath, append: true)
    output?.open()
    let text = "test" // 末尾に追加する文字列
    let cstring = text.cStringUsingEncoding(NSUTF8StringEncoding)
    let bytes = UnsafePointer<UInt8>(cstring!)
    let size = text.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)
    output?.write(bytes, maxLength: size)
    output?.close()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment