прочитать содержимое локального текстового файла, получить Nil в Swift

Я хотел бы быстро прочитать содержимое из одного текстового файла, шаг, который я сделал, это

  1. зайдите в терминал и прочитайте/создайте файл
  2. перейдите в Xcode, File -> добавить файл в My Project и выберите файл test_this в проект
  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)

однако после распечатки файла, пути и текста. текст равен нулю. файл и путь выглядят нормально, как мне быстро прочитать содержимое текстового файла?

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

Примечание: чтобы добавить файл в ваш проект.

  1. открытьXcodeи перейдите к вашему проекту, убедитесь, что на левой панели отображаются папки/файлы вашего проекта.
  2. открытьFinderи перейдите к вашему файлу.
  3. перетащите файл изFinder в левую панель вашего проекта Xcode.

После этогоBuildзатемrunмой код.

Кроме того, вы можете создатьNew Fileв Xcode, используя: щелкните правой кнопкой мыши на левой панели, показывающей папки/файлы, затем выберитеNew File..., прокрутите вниз, затем выберите,Emptyфайл. Дайте ему имяtest.txt. И файл будет создан и добавлен в ваш проект Xcode. Откройте этот файл в Xcode и введите следующее:Hello from the test.txt file. Соберите, а затем запустите мой код.

Другие вопросы по тегам