прочитать содержимое локального текстового файла, получить Nil в Swift
Я хотел бы быстро прочитать содержимое из одного текстового файла, шаг, который я сделал, это
- зайдите в терминал и прочитайте/создайте файл
- перейдите в Xcode, File -> добавить файл в My Project и выберите файл test_this в проект
- используйте следующий код для чтения содержимого.
/// terminal
/// $echo "some content" > /Users/test_this
/// swift
let file = "/Users/test_this"
let path = URL(fileURLWithPath: file)
let text = try? String(contentsOf: path)
однако после распечатки файла, пути и текста. текст равен нулю. файл и путь выглядят нормально, как мне быстро прочитать содержимое текстового файла?
1 ответ
Попробуйте что-то вроде этого подхода, учитывая, что вы добавили файл в свой проект 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
}
}
С содержимым файла:
Hello World
Примечание: чтобы добавить файл в ваш проект.
- открыть
Xcode
и перейдите к вашему проекту, убедитесь, что на левой панели отображаются папки/файлы вашего проекта. - открыть
Finder
и перейдите к вашему файлу. - перетащите файл из
Finder
в левую панель вашего проекта Xcode.
После этогоBuild
затемrun
мой код.
Кроме того, вы можете создатьNew File
в Xcode, используя: щелкните правой кнопкой мыши на левой панели, показывающей папки/файлы, затем выберитеNew File...
, прокрутите вниз, затем выберите,Empty
файл. Дайте ему имяtest.txt
. И файл будет создан и добавлен в ваш проект Xcode. Откройте этот файл в Xcode и введите следующее:Hello from the test.txt file
. Соберите, а затем запустите мой код.