Go 1.16+ 已弃用 io/ioutil,推荐用 os.ReadFile/WriteFile、os.ReadDir 和 fs.WalkDir 替代;小文件读写可用 os 包简化操作,大文件应使用流式处理避免内存暴涨。
注意:io/ioutil 在 Go 1.16+ 已被弃用,推荐直接使用 io、os 和 path/filepath 包替代。 但为兼容旧项目或理解原理,下面仍以 io/ioutil(Go ≤ 1.15)的用法说明,并同步给出现代等效写法。
使用 ioutil.ReadFile 一次性读取整个文件到内存,适合配置文件、JSON、文本等小体积内容。
示例:
data, err := ioutil.ReadFile("config.json")
if err != nil {
log.Fatal(err)
}
fmt.Println(string(data))
✅ 现代写法(Go 1.16+):
data, err := os.ReadFile("config.json") // 功能完全一致,更轻量
ioutil.WriteFile 自动处理文件打开、写入、关闭和权限设置,简洁安全。
示例(写入 UTF-8 文本):
err := ioutil.WriteFile("hell
o.txt", []byte("Hello, Golang!"), 0644)
if err != nil {
log.Fatal(err)
}
✅ 现代写法:
err := os.WriteFile("hello.txt", []byte("Hello, Golang!"), 0644)
⚠️ 注意:0644 是 Unix 权限(所有者可读写,组和其他用户只读),Windows 上仅影响只读标志。
ioutil.ReadDir 返回按文件名排序的 os.FileInfo 切片,适合列出当前目录下的文件/子目录。
示例:
files, err := ioutil.ReadDir(".")
if err != nil {
log.Fatal(err)
}
for _, f := range files {
fmt.Printf("%s\t%v\n", f.Name(), f.IsDir())
}
✅ 现代写法:
files, err := os.ReadDir(".") // 返回 fs.DirEntry,更轻量、不预加载 FileInfo
// 若需完整信息,调用 f.Info();若只需名字和是否为目录,用 f.IsDir() 即可
ioutil 本身不提供递归遍历,需配合 filepath.Walk 使用(该函数未被弃用,仍在 path/filepath 中)。
示例:
err := filepath.Walk(".", func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.IsDir() && strings.HasSuffix(info.Name(), ".go") {
fmt.Println(path)
}
return nil
})
if err != nil {
log.Fatal(err)
}
✅ Go 1.16+ 推荐搭配 fs.WalkDir(更高效,支持跳过子树):
err := fs.WalkDir(os.DirFS("."), ".", func(path string, d fs.DirEntry, err error) error {
if err != nil {
return err
}
if !d.IsDir() && strings.HasSuffix(d.Name(), ".go") {
fmt.Println(path)
}
return nil
})
不复杂但容易忽略:所有 ioutil 函数都隐式处理错误和资源释放,看似方便,但大文件读写易导致内存暴涨;生产环境建议流式处理(io.Copy + os.Open/os.Create),并显式 Close。
# js
# json
# go
# windows
# golang
# unix
# win
# 配置文件
# 递归
# 切片
# copy
# 遍历
# 子树
# 流式
# 大文件
# 已被
# 只需
# 跳过
# 未被
相关文章:
如何用已有域名快速搭建网站?
如何使用Golang安装API文档生成工具_快速生成接口文档
Bpmn 2.0的XML文件怎么画流程图
建站之星如何助力网站排名飙升?揭秘高效技巧
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
高端网站建设与定制开发一站式解决方案 中企动力
常州企业建站如何选择最佳模板?
头像制作网站在线制作软件,dw网页背景图像怎么设置?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
公司网站制作价格怎么算,公司办个官网需要多少钱?
免费视频制作网站,更新又快又好的免费电影网站?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
广德云建站网站建设方案与建站流程优化指南
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
建站之星如何实现五合一智能建站与营销推广?
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
如何注册花生壳免费域名并搭建个人网站?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
网站设计制作企业有哪些,抖音官网主页怎么设置?
制作营销网站公司,淘特是干什么用的?
如何快速生成高效建站系统源代码?
想学网站制作怎么学,建立一个网站要花费多少?
如何用美橙互联一键搭建多站合一网站?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
linux top下的 minerd 木马清除方法
如何在Windows虚拟主机上快速搭建网站?
如何用IIS7快速搭建并优化网站站点?
黑客如何通过漏洞一步步攻陷网站服务器?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
Java解压缩zip - 解压缩多个文件或文件夹实例
,在苏州找工作,上哪个网站比较好?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
购物网站制作公司有哪些,哪个购物网站比较好?
家具网站制作软件,家具厂怎么跑业务?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何选择适配移动端的WAP自助建站平台?
北京专业网站制作设计师招聘,北京白云观官方网站?
如何快速选择适合个人网站的云服务器配置?
网站代码制作软件有哪些,如何生成自己网站的代码?
如何配置支付宝与微信支付功能?
如何通过万网虚拟主机快速搭建网站?
php json中文编码为null的解决办法
如何用低价快速搭建高质量网站?
网站网页制作专业公司,怎样制作自己的网页?
*请认真填写需求信息,我们会在24小时内与您取得联系。