go 怎么判断一个文件存在,并且如果存在则读取文件,并json反序列化 string切片

ops/2024/12/14 7:49:27/

在 Go 语言中,你可以使用标准库中的 os 和 encoding/json 包来检查文件是否存在、读取文件内容并将其反序列化为 JSON 格式的字符串切片。以下是一个示例代码,展示了如何实现这一功能:

go
package main

import (
“encoding/json
“fmt”
“io/ioutil”
“log”
“os”
)

func main() {
// 假设我们要检查的文件路径
filePath := “example.json

// 检查文件是否存在
if _, err := os.Stat(filePath); os.IsNotExist(err) {fmt.Println("文件不存在:", filePath)return
}// 读取文件内容
fileContent, err := ioutil.ReadFile(filePath)
if err != nil {log.Fatalf("读取文件失败: %v", err)
}// 定义一个字符串切片来接收反序列化后的数据
var stringSlice []string// 将文件内容反序列化为字符串切片
err = json.Unmarshal(fileContent, &stringSlice)
if err != nil {log.Fatalf("JSON 反序列化失败: %v", err)
}// 打印反序列化后的字符串切片
fmt.Println("字符串切片:", stringSlice)

}
解释
检查文件是否存在:
使用 os.Stat 函数来获取文件的状态信息。
如果 os.IsNotExist(err) 返回 true,则表示文件不存在。
读取文件内容:
使用 ioutil.ReadFile 函数读取文件的全部内容。注意:在 Go 1.16 及之后的版本中,建议使用 os 和 io 包代替 ioutil,但 ioutil.ReadFile 仍然可用。
定义字符串切片:
定义一个 []string 类型的变量 stringSlice,用于存储反序列化后的数据。
JSON 反序列化:
使用 json.Unmarshal 函数将文件内容(JSON 格式)反序列化为 stringSlice。
打印结果:
如果一切正常,打印反序列化后的字符串切片。
注意事项
确保你的 JSON 文件内容格式正确,否则 json.Unmarshal 会失败。
示例代码假设 JSON 文件的内容是一个字符串数组(例如 [“string1”, “string2”, “string3”])。
在生产环境中,你可能需要添加更多的错误处理和日志记录。
这样,你就可以在 Go 中检查文件是否存在,读取文件内容,并将其反序列化为一个字符串切片了。


http://www.ppmy.cn/ops/141755.html

相关文章

CTFshow-命令执行(Web58-77)

CTFshow-命令执行(Web58-77) Web58 <?php if(isset($_POST[c])){$c $_POST[c];eval($c); }else{highlight_file(__FILE__); }Warning: system() has been disabled for security reasons in /var/www/html/index.php(17) : eval()d code on line 1 本题对于passthru&…

LDR6500 TYPE-C转DP双向互传方案解析

在当前的数字时代&#xff0c;投屏技术已成为连接不同设备、共享内容的常用手段。LDR6500 TYPE-C转DP双向互传方案应运而生&#xff0c;凭借其灵活性和高清视频传输能力&#xff0c;满足了现代数字生活对高效能和高清晰度的需求。 一、LDR6500概述 LDR6500是由乐得瑞科技针对…

WordPress酱茄主题 开源版 博客资讯自媒体网站模板

一款免费开源的WordPress主题&#xff0c;主题专为WordPress博客、资讯、自媒体网站而设计 运行环境 支持WordPress版本&#xff1a;5.6 兼容Chrome、Firefox、Safari等主流浏览器 支持设备&#xff1a;响应式布局&#xff0c;不同设备不同展示效果 服务器环境建议&#x…

可视化报表如何制作?一文详解如何用报表工具开发可视化报表

在如今这个数据驱动的商业时代&#xff0c;众多企业正如火如荼地推进数字化转型&#xff0c;力求在激烈的市场竞争中占据先机。然而&#xff0c;随着业务规模的扩大和运营复杂度的提升&#xff0c;企业的数据量爆炸式增长&#xff0c;传统报表格式单一、信息呈现密集且不易解读…

【KodExplorer】可道云KodExplorer-个人网盘安装使用

说明&#xff1a;安装kodExplorer &#xff08;不是Kodbox&#xff09;&#xff1b;Kodbox需求服务器至少2核4G内存&#xff0c;要求环境具备php/redis/mysql/。安装kodExplorer 就是比较方便简单部署&#xff0c;个人版免费。 一、安装环境需求 服务器: Windows&#xff0c;…

【excel密码】Excel工作表不能复制或移动

为什么excel文件打开之后&#xff0c;工作表里是可以编辑的&#xff0c;但是想要移动工作表或者复制、重命名等操作&#xff0c;这是什么原因&#xff1f;其实这是因为设置了工作簿保护&#xff0c;设置了保护的工作簿无法对整张工作表进行操作。 想要取消这种保护&#xff0c;…

数据分析PowerBI累积同比图

先看效果&#xff1a; 一个按月份的累计同比图。 第一步&#xff0c;写度量值 累计总计 CALCULATE(SUM(表名[销量]), FILTER(ALLSELECTED(表名), 表名[月份] < MAX(表名[月份]) && 表名[时期] "节日" && 表名[年份] "2024年"))第…

C++多线程实战:掌握图像处理高级技巧

文章结尾有最新热度的文章,感兴趣的可以去看看。 本文是经过严格查阅相关权威文献和资料,形成的专业的可靠的内容。全文数据都有据可依,可回溯。特别申明:数据和资料已获得授权。本文内容,不涉及任何偏颇观点,用中立态度客观事实描述事情本身 导读 在当今的计算世界中,…