swiftの学習(ファイル読み書き)
ファイルの読み書き
いくつか方法はあると思うけど簡単なものから書く
全然知らんのでシンプルなものから理解しておかないと…
ファイルの書き込み
簡単なもののファイル書き込み
サンプル
// // main.swift // swift_sample02 // import Foundation let paths1 = NSSearchPathForDirectoriesInDomains( .DocumentDirectory, .UserDomainMask, true) let _path = paths1[0].stringByAppendingPathComponent("text1.txt") println(_path) // 書き込み var data:NSString = "" data = data + "hoge1" + "\n" data = data + "hoge2" + "\n" data = data + "hoge3" + "\n" let success = data.writeToFile(_path, atomically: true, encoding: NSUTF8StringEncoding, error: nil) if success { println("保存に成功") }
結果
$ cat /Users/matsumotoshigeharu/Documents/text1.txt hoge1 hoge2 hoge3 $
ファイル読み込み
さっき作ったファイルを読み込み
サンプル
// // main.swift // swift_sample02 // import Foundation let paths1 = NSSearchPathForDirectoriesInDomains( .DocumentDirectory, .UserDomainMask, true) let _path = paths1[0].stringByAppendingPathComponent("text1.txt") println(_path) // 読み込み var data2 = "" data2 = NSString(contentsOfFile: _path, encoding: NSUTF8StringEncoding, error: nil)! println(data2)
結果
/Users/matsumotoshigeharu/Documents/text1.txt hoge1 hoge2 hoge3
ここから下はディレクトリの取り方です
ディレクトリの取得
documentsの場合
// // main.swift // swift_sample02 // import Foundation let paths1 = NSSearchPathForDirectoriesInDomains( .DocumentDirectory, .UserDomainMask, true) let _path = paths1[0].stringByAppendingPathComponent("text1.txt") println(_path)
/Users/matsumotoshigeharu/Documents/text1.txt
キャッシュの場合
// // main.swift // swift_sample02 // import Foundation let paths1 = NSSearchPathForDirectoriesInDomains( .CachesDirectory, .UserDomainMask, true) let _path = paths1[0].stringByAppendingPathComponent("text1.txt") println(_path)
/Users/matsumotoshigeharu/Library/Caches/text1.txt
ホーム?
// // main.swift // swift_sample02 // import Foundation let paths1 = NSHomeDirectory() let _path = paths1.stringByAppendingPathComponent("text1.txt") println(_path)
/Users/matsumotoshigeharu/text1.txt
テンポラリ
// // main.swift // swift_sample02 // import Foundation let paths1 = NSTemporaryDirectory() let _path = paths1.stringByAppendingPathComponent("text1.txt") println(_path)
/var/folders/wv/xj94y2k92hv_7y7p_mgh67mh0000gn/T/text1.txt