2014-11-14 217 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