Как перезаписать содержимое файла в golang - PullRequest
1 голос
/ 25 мая 2020

У меня есть пустой файл с именем a.txt, я хочу вывести в него значение (int) в al oop и перезаписать последнее содержимое в файле 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?
    }

Ответы [ 2 ]

1 голос
/ 25 мая 2020

Вы также можете попробовать:

os.OpenFile с настраиваемыми флагами для обрезки файла, как показано ниже

package main

import (
    "log"
    "os"
)

func main() {
    f, err := os.OpenFile("notes.txt", os.O_RDWR|os.O_CREATE|O_TRUNC, 0755)
    if err != nil {
        log.Fatal(err)
    }
    if err := f.Close(); err != nil {
        log.Fatal(err)
    }
}
1 голос
/ 25 мая 2020

Просто используйте метод truncate и снова запишите в файл.

err = f.Truncate(0)
_, err = fmt.Fprintf(f, "%d", len(b))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...