读取文件内容不使用 FileManager
Posted
技术标签:
【中文标题】读取文件内容不使用 FileManager【英文标题】:Reading Contents of File Not Working with FileManager 【发布时间】:2019-04-29 18:47:38 【问题描述】:我是 Swift 的新手。
我正在尝试编写一个简单的应用程序,它只读取文件并将其内容转换为字符串。我正在使用 FileManager 以及此处为 Swift 4 提供的示例:Read and write a String from text file
但它不起作用。我假设问题是我给String(contentsOf: URL)
方法提供了错误的URL。抛出的确切错误是它无法打开文件,因为它不存在。
下面是我的ViewController.swift
代码:
import UIKit
class ViewController: UIViewController
@IBOutlet weak var testText: UITextView!
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
override func viewDidAppear(_ animated: Bool)
super.viewDidAppear(animated)
let test = directoryContents()
do
let text = try String(contentsOf: test)
testText.text! = text
catch
print(error.localizedDescription)
func directoryContents() -> URL
var dirContents: URL!
dirContents = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
dirContents = dirContents.appendingPathComponent("testdata.txt")
return dirContents
其余的应用程序文件是通用的单一视图应用程序文件。我会包含侧边栏的图像,但是当我尝试上传它时,问题编辑器抛出了一个错误。基本上,它看起来像:
testingData/
testingData/
TestData/
testdata.txt
AppDelegate.swift
ViewController.swfit
Main.storyboard
Assets.xcassets
LaunchScreen.storyboard
Info.plist
Products/
testingData.app
Main.storyboard
添加了一个TextView
,即我的ViewController
中的testText
。我要读入的文件是testdata.txt
,它是一个包含文本1,2,3,4,5,6
的文本文件,仅此而已。它是testingData
应用程序的成员。
我不确定我错过了什么。如果在这里的其他地方回答了这个问题,请指出我那个方向,我会关闭它。
【问题讨论】:
您应该通过项目设置中的构建设置将 txt 文件包含到包中。然后使用 Bundle api 获取文件的路径。例如,Bundle.url...。 【参考方案1】:如果文件在应用程序包中,您必须使用Bundle
的API
override func viewDidAppear(_ animated: Bool)
super.viewDidAppear(animated)
let test = Bundle.main.url(forResource:"testdata", withExtension: "txt")!
do
let text = try String(contentsOf: test)
testText.text! = text
catch
print(error)
并删除directoryContents()
【讨论】:
以上是关于读取文件内容不使用 FileManager的主要内容,如果未能解决你的问题,请参考以下文章