热门标签 | 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)
}


推荐阅读
  • ImhavingstrangeproblemwithNSURLSessionDelegate.Heresmycodefirst:我对NSURLSessionDelegate有一 ... [详细]
  • 第六章:枚举类型与switch结构的应用分析
    第六章深入探讨了枚举类型与 `switch` 结构在编程中的应用。枚举类型(`enum`)是一种将一组相关常量组织在一起的数据类型,广泛存在于多种编程语言中。例如,在 Cocoa 框架中,处理文本对齐时常用 `NSTextAlignment` 枚举来表示不同的对齐方式。通过结合 `switch` 结构,可以更清晰、高效地实现基于枚举值的逻辑分支,提高代码的可读性和维护性。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • Imbuildingamusicappthatwillhaveafeedofpoststhatcontainurltomusicfiles.Whenacell ... [详细]
  • 本文介绍了Go语言中正则表达式的基本使用方法,并提供了一些实用的示例代码。 ... [详细]
  • 本文将介绍如何在混合开发(Hybrid)应用中实现Native与HTML5的交互,包括基本概念、学习目标以及具体的实现步骤。 ... [详细]
  • 机器学习算法:SVM(支持向量机)
    SVM算法(SupportVectorMachine,支持向量机)的核心思想有2点:1、如果数据线性可分,那么基于最大间隔的方式来确定超平面,以确保全局最优, ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 开发技巧:在Interface Builder中实现UIButton文本居中对齐的方法与步骤
    开发技巧:在Interface Builder中实现UIButton文本居中对齐的方法与步骤 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • Iwanttoreplaceaportionofastringthatmatchesaregexpattern.我想替换匹配正则表达式模式的字符串的一部分。Ihav ... [详细]
  • 导读:本文来自SwiftGG翻译组,作者@walkingway基于苹果Swift官方博客中TedKremenek所撰写的“Swift2.2Released!”文章进行了关于Swift2. ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文以 www.域名.com 为例,详细介绍如何为每个注册用户提供独立的二级域名,如 abc.域名.com。实现这一功能的核心步骤包括:首先,确保域名支持泛解析,即将 A 记录设置为 *.域名.com,以便将所有二级域名请求指向同一服务器。接着,在服务器端使用 ASP.NET 2.0 进行配置,通过解析 HTTP 请求中的主机头信息,动态识别并处理不同的二级域名,从而实现个性化内容展示。此外,还需在数据库中维护用户与二级域名的对应关系,确保每个用户的二级域名都能正确映射到其专属内容。 ... [详细]
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社区 版权所有