如何使用 playground 在 Swift 中读取和写入数据到文本文件?
How to Read and Write data to a text file in Swift using playground?
我通读了这些 SO 链接以获得答案
1. Read a file/URL line-by-line in Swift
2. Read and write data from text file
Link 2 为我提供了解决方案,但问题是 目录。默认为当前项目的Document目录。
因此,如果我想从 "/Users/Prem/Desktop/File.txt" 读取文件,我应该对该代码进行哪些修改?
如何使用自定义目录读写文本文件中的数据?
let dirs : [String]? = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) as? [String]
if ((dirs) != nil) {
var dir = dirs![0]; //documents directory
//println(dir)
//dir = "/Users/Prem/Desktop" ----> If i give this path, its not creating the file
//Current Value in dir
//dir ----> "/Users/Prem/Library/Containers/com.apple.dt.playground.stub.OSX.FileIO-2159807F-CC21-4545-AC34-AD9F9898796B/Data/Documents"
let path = dir.stringByAppendingPathComponent("File.txt");
println(path)
let text = "Rondom Text"
//writing
text.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding, error: nil);
//reading
let text2 = String(contentsOfFile: path, encoding: NSUTF8StringEncoding, error: nil)
}
经过几天的尝试,很明显,
如果我们在 playground 中尝试 'file handling',我们将无法访问项目的自包含目录以外的内容。因为它是沙盒
但是从 xcode 项目中,我们可以访问任何目录并执行 read/write 操作。
学分:@robMayoff
我通读了这些 SO 链接以获得答案
1. Read a file/URL line-by-line in Swift
2. Read and write data from text file
Link 2 为我提供了解决方案,但问题是 目录。默认为当前项目的Document目录。
因此,如果我想从 "/Users/Prem/Desktop/File.txt" 读取文件,我应该对该代码进行哪些修改?
如何使用自定义目录读写文本文件中的数据?
let dirs : [String]? = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) as? [String]
if ((dirs) != nil) {
var dir = dirs![0]; //documents directory
//println(dir)
//dir = "/Users/Prem/Desktop" ----> If i give this path, its not creating the file
//Current Value in dir
//dir ----> "/Users/Prem/Library/Containers/com.apple.dt.playground.stub.OSX.FileIO-2159807F-CC21-4545-AC34-AD9F9898796B/Data/Documents"
let path = dir.stringByAppendingPathComponent("File.txt");
println(path)
let text = "Rondom Text"
//writing
text.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding, error: nil);
//reading
let text2 = String(contentsOfFile: path, encoding: NSUTF8StringEncoding, error: nil)
}
经过几天的尝试,很明显,
如果我们在 playground 中尝试 'file handling',我们将无法访问项目的自包含目录以外的内容。因为它是沙盒
但是从 xcode 项目中,我们可以访问任何目录并执行 read/write 操作。
学分:@robMayoff