当前位置: 首页 > news >正文

『uniapp』把接口的内容下载为txt本地保存 / 读取本地保存的txt文件内容(详细图文注释)

目录

    • 预览效果
    • 思路分析
      • downloadTxt 方法
      • readTxt 方法
    • 完整代码
    • 总结


欢迎关注 『uniapp』 专栏,持续更新中
欢迎关注 『uniapp』 专栏,持续更新中

预览效果

在这里插入图片描述

思路分析

downloadTxt 方法

该方法主要完成两个任务:

  • 下载 txt 文件:通过 uni.downloadFile 方法从指定的 URL 下载文件,返回的是临时文件路径。
  • 保存文件:使用 uni.saveFile 将临时文件保存到本地。
  • 读取文件:文件保存完成后,调用 plus.io API 读取文件内容,并将其转换为 JSON 格式存储到 resultData 中。

步骤:

  1. 通过 uni.downloadFile 下载文件。
  2. 使用 uni.saveFile 保存文件并获取本地路径。
  3. 使用 plus.io.resolveLocalFileSystemURL 读取本地文件,FileReader 将其内容读取为文本并解析成 JSON 格式。

readTxt 方法

该方法用于读取已下载并保存的本地 txt 文件。

首先检查 savedFilePath 是否为空,确保文件已下载。如果文件路径有效,调用 readFile 方法读取文件并解析其内容。

if (!this.savedFilePath) {console.warn('路径为空,请先下载后再读取文件');return;
}
await this.readFile(this.savedFilePath);

完整代码

<template><view><button @click="downloadTxt">下载本地txt</button><button @click="readTxt">读取本地txt</button><button @click="consoleData">输出txt内容</button><button @click="getSavedFileInfo">输出txt文件信息</button></view>
</template><script>export default {data() {return {resultData: {}, //得到的数据savedFilePath: uni.getStorageSync('savedFilePath') || '', //文件保存路径,每次启动读取这个路径dateUrl: "http://t.weather.sojson.com/api/weather/city/101030100", //你的json格式api};},methods: {getSavedFileInfo() {uni.getSavedFileInfo({filePath: this.savedFilePath, //仅做示例用,非真正的文件路径success: function(res) {console.log('文件大小',res.size);console.log('创建时间的时间戳 可以根据时间戳决定是否更新本地的txt',res.createTime);}});},// 输出 txt 内容consoleData() {console.warn('resultData:', this.resultData);console.warn('savedFilePath:', this.savedFilePath);},// 下载并保存 txt 文件async downloadTxt() {try {const res = await this.downloadFile();if (res.statusCode === 200) {const savedFilePath = await this.saveFile(res.tempFilePath);this.savedFilePath = savedFilePath;await this.readFile(savedFilePath);} else {console.error('下载返回响应代码错误:', res);}} catch (err) {console.error('下载或文件操作失败:', err);}},// 读取本地 txt 文件async readTxt() {if (!this.savedFilePath) {console.warn('路径为空,请先下载后再读取文件');return;}try {await this.readFile(this.savedFilePath);} catch (err) {console.error('读取文件失败:', err);}},// 文件下载函数downloadFile() {return new Promise((resolve, reject) => {uni.downloadFile({url: this.dateUrl,success: (res) => {if (res.statusCode === 200) {resolve(res);} else {reject(new Error('下载失败,状态码: ' + res.statusCode));}},fail: (err) => reject(err),});});},// 文件保存函数saveFile(tempFilePath) {return new Promise((resolve, reject) => {uni.saveFile({tempFilePath,success: (saveRes) => {console.log('下载并保存txt成功');const filePath = plus.io.convertLocalFileSystemURL(saveRes.savedFilePath);uni.setStorageSync('savedFilePath',filePath)resolve(filePath);},fail: (err) => reject(err),});});},// 文件读取函数readFile(filePath) {return new Promise((resolve, reject) => {plus.io.resolveLocalFileSystemURL(filePath, (entry) => {entry.file((file) => {const fileReader = new plus.io.FileReader();fileReader.onloadend = (evt) => {try {const jsonData = JSON.parse(evt.target.result);this.resultData = jsonData;console.log('成功读取并转为JSON:', this.resultData);resolve();} catch (e) {reject(new Error('解析文件失败: ' + e.message));}};fileReader.readAsText(file, 'utf-8');}, (err) => reject(err));}, (err) => reject(err));});},},};
</script><style lang="scss" scoped>
</style>

总结

大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2024 mzh

Crated:2024-4-1

欢迎关注 『uniapp』 专栏,持续更新中
欢迎关注 『uniapp』 专栏,持续更新中
『未完待续』


相关文章:

  • 便捷高效能源服务触手可及,能耗监测系统赋能智能建筑与智慧城市
  • LEAP模型能源需求/供应预测、能源平衡表核算、空气污染物排放预测、碳排放建模预测、成本效益分析、电力系统优化
  • 无人机巡检智能边缘计算终端技术方案‌‌——基于EFISH-SCB-RK3588工控机/SAIL-RK3588核心板的国产化替代方案‌
  • 不确定性分析在LEAP能源-环境系统建模中的整合与应用
  • 多模态大语言模型arxiv论文略读(104)
  • 快速排序(Quick Sort)算法详解(递归与非递归)
  • 什么是AI芯片?
  • Git知识
  • 深入解析Playwright for Python:浏览器功能与代码实例详解
  • 使用大模型预测亚急性脊髓联合变性的技术方案大纲
  • 基于PostGIS的GeoTools执行原生SQL查询制图实践-以贵州省行政区划及地级市驻地为例
  • C++--范围for循环详解
  • 记一次sql按经纬度计算距离
  • Fuse.js:打造极致模糊搜索体验
  • 基于Java的OPCDA采集中间件
  • Java密码加密存储算法,SpringBoot 实现密码安全存储
  • 蓝桥杯_DS18B20温度传感器---新手入门级别超级详细解析
  • PACS系统全景图:软件源码、核心组件、覆盖科室与关键技术解析
  • 进程——环境变量及程序地址空间
  • 虚拟线程与消息队列:Spring Boot 3.5 中异步架构的演进与选择
  • 珠海高端网站设计/百度非企推广开户
  • web前端毕业设计论文/seo关键词挖掘
  • 北京h5网页设计/合肥百度推广优化
  • 佛山网站建设网站制作公司/网站推广的目的
  • 扬中网站建设价格/广州网站推广联盟
  • 昆山哪里有人做网站/国产长尾关键词拘挖掘