读取本地文本文件内容,在swift中获取Nil



我想在swift中读取一个文本文件中的内容,我所做的步骤是

  1. 转到终端并读取/创建文件
  2. 转到Xcode,文件->将文件添加到"我的项目"中,然后选择test_将该文件添加到项目中
  3. 使用以下代码阅读内容
/// terminal
/// $echo "some content" > /Users/test_this
/// swift
let file = "/Users/test_this"
let path = URL(fileURLWithPath: file)
let text = try? String(contentsOf: path)

但是,打印出文件、路径和文本后。文本为零。文件和路径看起来不错如何在swift中读取文本文件中的内容?

考虑到您已经将test.txt文件添加到Xcode项目中,请尝试类似的方法。

struct ContentView: View {
@State var fileTxt = ""

var body: some View {
Text(fileTxt)
.onAppear {
if let theString = readLocalData() {
fileTxt = theString
print("---> fileTxt: (fileTxt)")
}
}
}
func readLocalData() -> String? {
if let pathString = Bundle.main.path(forResource: "test", ofType: "txt") {
let url = URL(fileURLWithPath: pathString)
do {
return try String(contentsOf: url)
// alternative
// let data = try Data(contentsOf: url)
// return String(data: data, encoding: .utf8)
} catch {
print(error) // <-- here important
}
}
// vadian cleaner alternative
//        if let url = Bundle.main.url(forResource: "test", withExtension: "txt") {
//            do {
//                return try String(contentsOf: url)
//            } catch {
//                print(error) // <-- here important
//            }
//        }

return nil 
}
}

带有test.txt文件内容:

Hello World

注意:将文件test.txt添加到您的Xcode项目中。

  1. 打开Xcode并导航到您的项目,确保左侧面板显示项目的文件夹/文件
  2. 打开Finder并导航到您的test.txt文件
  3. test.txt文件从Finder拖放到Xcode项目的左面板中

完成后,Build然后是run我的代码。

或者,您可以在Xcode中创建New File,方法是:用鼠标右键单击显示文件夹/文件的左侧面板,然后选择New File...,向下滚动然后选择,Empty文件。给它取个名字test.txt。文件将创建并添加到您的Xcode项目中。在Xcode中打开此文件,然后键入:Hello from the test.txt file。构建然后运行我的代码。

最新更新