Skip to content

Files 文件操作

Updated View as Markdown

Intro

文件操作在 Go 中十分常见,除去前面提到过的 通过 os 读取文件到切片 之外,还有其它(逐行读取,用 os.WriteFile 写入文件等).

逐行读取(扫描)

package main

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

func main() {
	f, err := os.Open("example.txt")
	if err != nil {
		log.Fatalf("failed opening file: %s", err)
	}
	defer f.Close()

	scanner := bufio.NewScanner(f)
	for scanner.Scan() {
		fmt.Println(scanner.Text())
	}

	if err := scanner.Err(); err != nil {
		log.Fatalf("scanner error: %s", err)
	}
}

写入文件

将切片写入文件

package main

import (
	"log"
	"os"
)

func main() {
	content := []byte("Hello, World!\n")
	err := os.WriteFile("example.txt", content, 0644)
	if err != nil {
		log.Fatalf("failed writing to file: %s", err)
	}
}

追加内容

package main

import (
	"log"
	"os"
)

func main() {
	f, err := os.OpenFile("example.txt", os.O_APPEND|os.O_WRONLY, 0644)
	if err != nil {
		log.Fatalf("failed opening file: %s", err)
	}
	defer f.Close()

	if _, err := f.WriteString("Appended content\n"); err != nil {
		log.Fatalf("failed writing to file: %s", err)
	}
}

参考

https://go-cookbook.com/snippets/files/reading-writing-files


Navigation

Type to search…

↑↓ navigate↵ selectEsc close