前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Go程序例子(65):写入文件

Go程序例子(65):写入文件

原创
作者头像
用户11078756
发布2025-01-20 09:21:00
发布2025-01-20 09:21:00
6900
代码可运行
举报
文章被收录于专栏:go程序例子
运行总次数:0
代码可运行

在Go语言中,写入文件的模式与我们之前看到的读取文件的模式相似。

代码语言:javascript
代码运行次数:0
复制
package main

import (
    "bufio"
    "fmt"
    "os"
)

func check(e error) {
    if e != nil {
        panic(e)
    }
}

func main() {
		// 首先,这里展示了如何将字符串(或仅仅是字节)转储到文件中。
    d1 := []byte("hello\\ngo\\n")
    err := os.WriteFile("/tmp/dat1", d1, 0644)
    check(err)
		// 为了进行更细粒度的写入操作,请以写入模式打开文件。
    f, err := os.Create("/tmp/dat2")
    check(err)
		// 在打开文件后立即使用 defer 来安排关闭操作是一种惯用的做法。
    defer f.Close()
		// 您可以按照预期的方式写入字节切片。
    d2 := []byte{115, 111, 109, 101, 10}
    n2, err := f.Write(d2)
    check(err)
    fmt.Printf("wrote %d bytes\\n", n2)
		// 同时,WriteString 方法也是可用的。
    n3, err := f.WriteString("writes\\n")
    check(err)
    fmt.Printf("wrote %d bytes\\n", n3)
		// 使用 Sync 方法将写入的数据刷新到稳定的存储介质中。
    f.Sync()
		// 除了我们之前提到的带缓冲的读取器之外,bufio 包还提供了带缓冲的写入器。
    w := bufio.NewWriter(f)
    n4, err := w.WriteString("buffered\\n")
    check(err)
    fmt.Printf("wrote %d bytes\\n", n4)
		// 使用 Flush 方法确保所有缓冲的操作都已应用到基础的写入器上。
    w.Flush()

}

运行结果:

代码语言:javascript
代码运行次数:0
复制
➜ go run writing-file/writing-file.go                 
wrote 5 bytes
wrote 7 bytes
wrote 9 bytes

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档