You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go 1.16后ioutil.ReadAll等函数已弃用,替代标准库有哪些?

Go 1.16+ 替代io/ioutil弃用函数的标准库方案

从Go 1.16开始,io/ioutil包被弃用,其核心函数的替代方案都可在标准库的io和os包中找到:

ioutil.ReadAll → io.ReadAll

io.ReadAll完全替代ioutil.ReadAll的功能,用法完全一致:

// 替代前
data, err := ioutil.ReadAll(reader)
// 替代后
data, err := io.ReadAll(reader)

ioutil.ReadFile → os.ReadFile

os.ReadFile直接提供读取文件内容的功能,无需导入额外包:

// 替代前
data, err := ioutil.ReadFile("example.txt")
// 替代后
data, err := os.ReadFile("example.txt")

ioutil.ReadDir → os.ReadDir

os.ReadDir返回[]os.DirEntry(而非原[]os.FileInfo),如果需要获取原FileInfo结构的信息,可调用DirEntry.Info()方法:

// 替代前
files, err := ioutil.ReadDir("./")
// 替代后
entries, err := os.ReadDir("./")
// 如需获取FileInfo:
for _, entry := range entries {
    info, err := entry.Info()
    // 处理info逻辑
}

注意:所有替代函数的行为与原函数保持一致,仅归属包发生变更,迁移时直接替换包路径和函数名即可(ReadDir需注意返回值类型的差异)。

内容的提问来源于stack exchange,提问作者Vivian K. Scott

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 02:25:39