2014-11-14 266 views
6

我正在尋找Swift文件輸入/輸出操作,以便下週在我的大學進行簡短演示。我真的沒有發現太多。Apple Swift文件IO操作

下面是我找到的操作:

let location = "/Users/test/test.txt" 
var str = "Hello, playground" 

//write 
str.writeToFile(location, atomically: false, encoding: NSUTF8StringEncoding, error: nil) 
//read 
let filecontent = String(contentsOfFile: location, encoding: NSUTF8StringEncoding, error: nil) 
//binary read 
let test = NSData(contentsOfFile: location) 
//if file exists 
NSFileManager().fileExistsAtPath(location) 
//find Files in the App Bundle with suffix test and prefix txt 
var path= NSBundle.mainBundle().pathForResource("test", ofType: "txt") 
//path for dynamic user names 
if let dirs = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) as? [String] { 
let path = dirs[0].stringByAppendingPathComponent("file.txt") 
//printout: /Users/test/Documents/file.txt 

是否有運營與我可以讀取單個字符?
我可以將文本追加到文件嗎?
我可以寫/只讀字符串嗎?
有沒有其他文件操作,我需要知道?

+1

你的問題有點寬泛,但你應該看看NSInputStream和NSOutputStream。 – 2014-11-14 20:24:28

+1

...還有NSFileHandle ... – 2014-11-14 21:08:59

回答

2

有沒有可以讀取單個字符的操作?

斯威夫特代碼可以使用任何常用的框架(基金會,可可,可可觸摸等),並單獨給你許多方式通常比角色更高層次上讀寫文件,一次。如果您需要更低級別的文件I/O,您可以按照Martin R.的建議使用NSInputStreamNSOutputStream,或者您可以使用NSData

當然,如果您真的想讓自己的文件變得髒亂,也可以使用所有通常的功能C stdio函數。但是當你在對象上進行操作時,通常不會像這樣在低級別上工作。

+1

非常有用你的(和馬丁R)答案,我需要時間來分析類 – Cheatyx 2014-11-14 22:40:15