登录
首页 >  Golang >  Go问答

如何在golang中修改文件内容

来源:stackoverflow

时间:2024-03-28 16:18:23 154浏览 收藏

今天golang学习网给大家带来了《如何在golang中修改文件内容》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

我有一个名为 a.txt 的空文件,我想在循环中向其输出一个值(int),并覆盖文件 a.txt 中的最后内容。例如,

// open a file
    f, err := os.Open("test.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer f.Close()

    // another file
    af, err := os.OpenFile("a.txt", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
    if err != nil {
        log.Fatal(err)
    }
    defer af.Close()

    b := []byte{}

    scanner := bufio.NewScanner(f)
    for scanner.Scan() {
        b = append(b, scanner.Bytes()...)
        // how to output len(b) into a.txt?
    }

解决方案


只需使用 truncate 方法并从头开始再次写入文件。

err = f.truncate(0)
_, err = f.seek(0, 0)
_, err = fmt.fprintf(f, "%d", len(b))

您还可以尝试:

os.OpenFile 带有自定义标志来截断文件,如下所示

package main

import (
    "log"
    "os"
)

func main() {
    f, err := os.OpenFile("notes.txt", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0755)
    if err != nil {
        log.Fatal(err)
    }
    if err := f.Close(); err != nil {
        log.Fatal(err)
    }
}

今天关于《如何在golang中修改文件内容》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>