热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在swift3中写入文本文件

如何解决《在swift3中写入文本文件》经验,为你挑选了1个好方法。

嗨,我对快速编程很新,所以如果我犯了明显的错误,请耐心等待.我试图将用户通过文本字段输入的数据写入文本文件.我可以通过下面编写的代码成功完成此操作.但是,当我尝试保存更多数据时,它将使用正在保存的新数据替换文本文件中的现有数据.例如,如果我保存字符串'hello world'然后保存另一个字符串'bye'.我只会在文本文件中看到字符串'bye'.有没有办法可以修改我的代码,这样我就可以在纺织品的一行看到'hello world',在另一行看到'bye'.

@IBAction func btnclicked(_ sender: Any) {        
   self.savedata(value: answer.text!)
}

func savedata (value: String){    
   let fileName = "Test"
   let DocumentDirURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)

   let fileURL = DocumentDirURL.appendingPathComponent(fileName).appendingPathExtension("txt")
   print("FilePath: \(fileURL.path)")

   let writeString = NSString(string: answer.text!)
   do {
      // Write to the file
      try writeString.write(to: fileURL, atomically: true, encoding: String.Encoding.utf8.rawValue)
   } catch let error as NSError {
         print("Failed writing to URL: \(fileURL), Error: " + error.localizedDescription)
   }
}

非常感谢任何帮助谢谢你



1> Bogdan Farca..:

这是一个使用FIleHandler,适用于Swift 3的示例,从这里(当然你应该添加我的例子中缺少的所有错误处理代码):

let dir = FileManager.default.urls(for: FileManager.SearchPathDirectory.cachesDirectory, in: FileManager.SearchPathDomainMask.userDomainMask).first!
let fileurl =  dir.appendingPathComponent("log.txt")

let string = "\(NSDate())\n"
let data = string.data(using: .utf8, allowLossyConversion: false)!

if FileManager.default.fileExists(atPath: fileurl.path) {
    if let fileHandle = try? FileHandle(forUpdating: fileurl) {
        fileHandle.seekToEndOfFile()
        fileHandle.write(data)
        fileHandle.closeFile()
    }
} else {
    try! data.write(to: fileurl, options: Data.WritingOptions.atomic)
}


推荐阅读
author-avatar
陈凯105_462
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有