Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > Go向文件写入内容

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

作者:程序员爱钓鱼

向文件写入内容 的完整内容,这是文件操作的另一个核心技能,与读取配套,适用于日志记录、生成报告、写配置等场景,本文通过代码示例介绍的非常详细,需要的朋友可以参考下

一、案例目标

编写一个 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只写模式

八、拓展建议

小结

通过本案例你学会了:

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

您可能感兴趣的文章:
阅读全文