Golang - ファイルの読み取り

Go でファイルを読み込む方法は大きく 2 つあり、1 つはosパッケージ内の関数を使用してos.openストリーミングで読み込む方法、もう 1 つはioutilパッケージの関数を使用してioutil.ReadFile読み込む方法です。ファイルを一度に読み取り、内容はすべてメモリにロードされます。

os.openこの関数はファイル オブジェクトを返すため、それを調整bufioまたはioutil使用する必要があります。

具体的な使用例は次のとおりです。

package main

import (
	"bufio"
	"fmt"
	"io/ioutil"
	"os"
)

func main() {
    
    
	file := "H:\\go\\main\\1.txt"
	ReadByIoUntil(file)
	ReadByOs(file)
}

func ReadByIoUntil(filename string) {
    
    
	fmt.Println("-------通过ioutil.ReadFile读取---------")
	data, err := ioutil.ReadFile(filename)
	if err != nil {
    
    
		fmt.Fprintf(os.Stderr, "error reading file: %v\n", err)
	}
	fmt.Println(string(data))
}

func ReadByOs(filename string) {
    
    
	fmt.Println("-------通过os.Open读取---------")
	f, err := os.Open(filename)
	if err != nil {
    
    
		fmt.Fprintf(os.Stderr, "error reading file: %v\n", err)
	}

	//采用bufio读取文件内容
	input := bufio.NewScanner(f)
	for input.Scan() {
    
    
		fmt.Println(input.Text())
	}

	//采用ioutil读取文件内容,由于流是一次性的,所以上面的代码输出后,下面的Println将不再打印任何东西
	contents, err := ioutil.ReadAll(f)
	fmt.Println(contents)

	f.Close()
}

おすすめ

転載: blog.csdn.net/mryang125/article/details/114798592