我在将文本写入文件文档时遇到问题。 这是我的源代码:
func getDocumentsDirectory() -> URL {
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
return paths[0]
}
let fileName = getDocumentsDirectory().appendingPathComponent("LogFile.txt")
do {
try KML.soapRequest.xml.write(to: fileName, atomically: true, encoding: String.Encoding.utf8)
} catch {
print("Failed save")
}
我想将文本插入文件"LogFile.txt",我是快速语言的新手。
感谢您的所有帮助。
我在这里发现了你的问题:在 Swift 中将文本或数据附加到文本文件
- 如果文件存在,将追加到文本文件。
-
如果文本文件不存在,将创建一个新文件。
class Logger { static var logFile: URL? { guard let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return nil } let formatter = DateFormatter() formatter.dateFormat = "dd-MM-yyyy" let dateString = formatter.string(from: Date()) let fileName = "(dateString).log" return documentsDirectory.appendingPathComponent(fileName) } static func log(_ message: String, functionName: String = #function, filename: String = #file, line: Int = #line) { guard let logFile = logFile else { return } let className = filename.components(separatedBy: "/").last let formatter = DateFormatter() formatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSS " let timestamp = formatter.string(from: Date()) guard let data = ("[(timestamp)] [(className ?? "")] (functionName)(line): (message)" + "n").data(using: String.Encoding.utf8) else { return } if FileManager.default.fileExists(atPath: logFile.path) { if let fileHandle = try? FileHandle(forWritingTo: logFile) { fileHandle.seekToEndOfFile() fileHandle.write(data) fileHandle.closeFile() } } else { try? data.write(to: logFile, options: .atomicWrite) } } }