Apple Swift文件IO操作

Che*_*yx 6 file-io file swift

我正在搜索Swift文件输入/输出操作,以便下周在我的大学进行简短的演示.我真的没有太多关于它.

以下是我发现的操作:

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
Run Code Online (Sandbox Code Playgroud)

是否有可以读取单个字符的操作?
我可以将文字附加到文件吗?
我可以只读/读字符串吗?
有没有其他文件操作,我需要知道吗?

Cal*_*leb 3

是否有可以读取单个字符的操作?

Swift 代码可以使用任何常用的框架(Foundation、Cocoa、Cocoa Touch 等),仅此一项就为您提供了多种读写文件的方法,通常一次比一个字符的级别更高。如果您想要较低级别的文件 I/O,您可以使用NSInputStreamNSOutputStream正如 Martin R. 建议的那样,或者您可以使用NSData.

当然,stdio如果您真的想认真处理您的文件,您也可以使用所有常用的 C 函数。但是,当您对对象进行操作时,在这样的低级别上工作通常没有意义。