使用Go语言实现向文件写入内容的示例代码

Written by

in

文章目录
  • 编写一个 Go 程序,将一段字符串内容写入到本地 .txt 文件中。若文件不存在则自动创建,存在则覆盖写入或追加写入。
  • 日志系统:写入运行记录、用户行为 自动生成报告:写结果到文件中 导出数据:如导出表格、文本分析报告 写配置文件或缓存
  • 知识点 说明 os.WriteFile 快捷写入整个内容 os.OpenFile 控制写入模式(创建/追加/覆盖) defer 关闭文件 避免资源泄露 字符编码 Go 默认 UTF-8 支持中文无障碍
  • 将一段字符串写入指定文件; 自动创建新文件; 支持两种写入模式:覆盖写入 & 追加写入; 写入完成提示用户。
  • package main import ( “fmt” “os” ) func main() { content := “你好,Go语言!n这是一段写入文件的文本内容。n” filename := “output.txt” err := os.WriteFile(filename, []byte(content), 0644) if err != nil { fmt.Println(“写入文件失败:”, err) return } fmt.Println(“内容已成功写入文件:”, filename) } 执行后,会在当前目录生成 output.txt 文件,内容如下: 你好,Go语言! 这是一段写入文件的文本内容。
  • package main import ( “fmt” “os” ) func main() { filename := “log.txt” content := “【INFO】程序运行于:” + timeNow() + “n” // 打开文件并设置为追加写入模式 file, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { fmt.Println(“打开文件失败:”, err) return } defer file.Close() _, err = file.WriteString(content) if err != nil { fmt.Println(“写入失败:”, err) return } fmt.Println(“追加写入成功:”, content) } // 获取当前时间 func timeNow() string { return fmt.Sprintf(“%s”, os.Getenv(“TZ”)) // 或 time.Now().Format(“2006-01-02 15:04:05”) } 日志会被追加到 log.txt 文件末尾。
  • 权限模式 含义 0644 所有者可读写,其他用户只读 0666 所有人可读写(不推荐) os.O_CREATE 文件不存在时创建 os.O_APPEND 写入追加到末尾 os.O_WRONLY 只写模式
  • 写入用户输入的内容(结合 fmt.Scanln); 支持文件名通过命令行参数指定; 每次写入自动记录时间戳; 写 JSON/CSV 文件(见后续案例); 实现简单的记事本工具或日志记录器;
  • 通过本案例你学会了: 如何创建并写入本地文件 快速写入 vs 控制写入模式 写入中文、自动编码无障碍 错误处理与资源释放的好习惯 以上就是使用Go语言实现向文件写入内容的示例代码的详细内容,更多关于Go向文件写入内容的资料请关注风君子博客其它相关文章! 您可能感兴趣的文章: Golang文件操作之读取与写入方法全攻略 Go语言实现逐行读取和写入文件详解 Go文件操作(新建打开写入读取删除关闭)学习笔记 Go 文件读取和写入操作全面讲解 golang中log包自定义输出日志格式与写入到文件
  • 目录
    • 一、案例目标
    • 二、应用场景示例
    • 三、涉及知识点
    • 四、功能需求
    • 五、示例代码:覆盖写入(适合生成报告)
    • 六、示例代码:追加写入(适合日志、历史记录)
    • 七、权限解释
    • 八、拓展建议
    • 小结

    编写一个 Go 程序,将一段字符串内容写入到本地 .txt 文件中。若文件不存在则自动创建,存在则覆盖写入或追加写入。

    • 日志系统:写入运行记录、用户行为
    • 自动生成报告:写结果到文件中
    • 导出数据:如导出表格、文本分析报告
    • 写配置文件或缓存

    知识点 说明
    os.WriteFile 快捷写入整个内容
    os.OpenFile 控制写入模式(创建/追加/覆盖)
    defer 关闭文件 避免资源泄露
    字符编码 Go 默认 UTF-8 支持中文无障碍

    1. 将一段字符串写入指定文件;
    2. 自动创建新文件;
    3. 支持两种写入模式:覆盖写入 & 追加写入;
    4. 写入完成提示用户。

    package main
    
    import (
        "fmt"
        "os"
    )
    
    func main() {
        content := "你好,Go语言!n这是一段写入文件的文本内容。n"
        filename := "output.txt"
    
        err := os.WriteFile(filename, []byte(content), 0644)
        if err != nil {
            fmt.Println("写入文件失败:", err)
            return
        }
    
        fmt.Println("内容已成功写入文件:", filename)
    }
    

    执行后,会在当前目录生成 output.txt 文件,内容如下:

    你好,Go语言!
    这是一段写入文件的文本内容。
    

    package main
    
    import (
        "fmt"
        "os"
    )
    
    func main() {
        filename := "log.txt"
        content := "【INFO】程序运行于:" + timeNow() + "n"
    
        // 打开文件并设置为追加写入模式
        file, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
        if err != nil {
            fmt.Println("打开文件失败:", err)
            return
        }
        defer file.Close()
    
        _, err = file.WriteString(content)
        if err != nil {
            fmt.Println("写入失败:", err)
            return
        }
    
        fmt.Println("追加写入成功:", content)
    }
    
    // 获取当前时间
    func timeNow() string {
        return fmt.Sprintf("%s", os.Getenv("TZ")) // 或 time.Now().Format("2006-01-02 15:04:05")
    }
    

    日志会被追加到 log.txt 文件末尾。

    权限模式 含义
    0644 所有者可读写,其他用户只读
    0666 所有人可读写(不推荐)
    os.O_CREATE 文件不存在时创建
    os.O_APPEND 写入追加到末尾
    os.O_WRONLY 只写模式

    • 写入用户输入的内容(结合 fmt.Scanln);
    • 支持文件名通过命令行参数指定;
    • 每次写入自动记录时间戳;
    • 写 JSON/CSV 文件(见后续案例);
    • 实现简单的记事本工具或日志记录器;

    通过本案例你学会了:

    • 如何创建并写入本地文件
    • 快速写入 vs 控制写入模式
    • 写入中文、自动编码无障碍
    • 错误处理与资源释放的好习惯

    以上就是使用Go语言实现向文件写入内容的示例代码的详细内容,更多关于Go向文件写入内容的资料请关注风君子博客其它相关文章!

    您可能感兴趣的文章:

    • Golang文件操作之读取与写入方法全攻略
    • Go语言实现逐行读取和写入文件详解
    • Go文件操作(新建打开写入读取删除关闭)学习笔记
    • Go 文件读取和写入操作全面讲解
    • golang中log包自定义输出日志格式与写入到文件

    站内搜索