Swift文件与IO操作

server/2024/10/20 16:27:08/

在Swift中,我们可以通过文件路径或URL进行文件的读写操作。文件路径是文件在文件系统中的位置,可以是绝对路径或相对路径。URL是统一资源定位符,可以指向本地文件或远程资源。

  1. 从文件路径或URL获取文件内容:
    swift">let filePath = "/path/to/file.txt"if let content = try? String(contentsOfFile: filePath) {print(content)
    } else {print("Failed to read the file.")
    }let fileURL = URL(fileURLWithPath: filePath)do {let content = try String(contentsOf: fileURL)print(content)
    } catch {print("Failed to read the file.")
    }
    

  2. 写入文件:
    swift">let content = "Hello, World!"let filePath = "/path/to/file.txt"
    do {try content.write(toFile: filePath, atomically: true, encoding: .utf8)print("File written successfully.")
    } catch {print("Failed to write to the file.")
    }let fileURL = URL(fileURLWithPath: filePath)
    do {try content.write(to: fileURL, atomically: true, encoding: .utf8)print("File written successfully.")
    } catch {print("Failed to write to the file.")
    }
    

  3. 序列化与反序列化:
    swift">struct Person: Codable {let name: Stringlet age: Int
    }let person = Person(name: "John", age: 30)// 序列化为JSON数据
    do {let jsonData = try JSONEncoder().encode(person)// 写入文件let filePath = "/path/to/person.json"try jsonData.write(to: URL(fileURLWithPath: filePath))print("JSON data written successfully.")
    } catch {print("Failed to serialize the object.")
    }// 反序列化为对象
    let fileURL = URL(fileURLWithPath: filePath)
    do {let jsonData = try Data(contentsOf: fileURL)let decodedPerson = try JSONDecoder().decode(Person.self, from: jsonData)print(decodedPerson)
    } catch {print("Failed to deserialize the object.")
    }
    

总结:通过文件路径或URL,我们可以实现文件的读写操作。同时,通过序列化与反序列化,我们可以将对象转化为数据,并存储到文件中,或者从文件中读取数据并转化为对象。这些操作都需要进行错误处理,以防止出现异常情况。


http://www.ppmy.cn/server/4930.html

相关文章

http 3.0 有哪些新特性

HTTP/3 是超文本传输协议(HTTP)的最新主要版本,其显著特点是放弃了传统的TCP作为传输层协议,转而采用基于UDP的QUIC(Quick UDP Internet Connections)协议。以下是HTTP/3利用QUIC实现高性能传输的关键特性&…

ChatGPT:携手完成功能论文写作

ChatGPT无限次数:点击直达 ChatGPT:携手完成功能论文写作 随着人工智能技术的发展,如今我们已经能够利用先进的自然语言处理模型来辅助我们进行论文写作。ChatGPT作为其中一款非常强大的语言生成模型,为我们提供了许多便利,帮助我…

【CSS】深入理解:BFC究竟是什么?

深入理解:BFC究竟是什么? 在我们了解BFC之前,我们先来看看什么是FC 1. FC的概念 FC全称 Formatting Context ,元素在标准流里面都属于一个FC 块级元素的布局都属于Block Formatting Context,也就是BFC block level box都是在BFC中布局的 …

SpringBoot Cloud Gateway

网关简介 大家都都知道在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢? 如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去用。 这样的架构,会存在…

聚观早报 | 华为Pura70系列先锋计划;月之暗面升级Kimi

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 4月19日消息 华为Pura70系列先锋计划 月之暗面升级Kimi OPPO Find X7将推白色版本 波士顿动力推出人形机器人 v…

JVM之类加载器

1.JVM在哪里 jvm就是java虚拟机,jvm是一个环境(或者可以理解成一个运行在操作系统上的软件) 2.类加载器与双亲委派 JVM 启动的时候,并不会一次性加载所有的类,而是根据需要去动态加载。也就是说,大部分类…

全量知识系统 程序详细设计 定稿 之1 (QA百度搜索 )

Q1从今天开始,我们进入到全量知识系统(简称“全知系统”)的程序详细设计的 整理成文阶段--“定稿”(或“成熟”)阶段(相应的,前一阶段可以称为程序详细设计的“构思”(或“喂养”&am…

前端npm常用命令总结

npm(Node Package Manager)是Node.js的包管理器,用于安装和管理Node.js的依赖库。以下是一份npm命令的总结文档,涵盖了常用的npm命令及其功能: 包相关的 安装和卸载包 npm install :安装指定名称的包。n…