golang 读文件

go语言读文件学习总结

1、使用指针对象读文件

package main

import (
	"fmt"
	"io"
	"os"
)

func main() {
	file, err := os.Open("./main.go")
	if err != nil {
		fmt.Println("open file failed")
		return
	}
	defer file.Close()
	var content []byte
	var buf [128]byte

	for {
		n, err := file.Read(buf[:])
		if err == io.EOF {
			break
		}
		if err != nil {
			fmt.Println("read file faild")
			return
		}
		content = append(content, buf[:n]...)
	}

	fmt.Println(string(content))

}

只能读取文件中的128个字符,如果读取全部,使用for循环读取

2、使用bufio 读取文件

package main

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

func main() {
	inputFile, err := os.Open("./main.go")
	if err != nil {
		log.Fatal(err)
	}
	defer inputFile.Close()
	reader := bufio.NewReader(inputFile)
	for {
		line, err := reader.ReadString('\n')
		if err == io.EOF {
			break
		}
		if err != nil {
			log.Fatal(err)
			return
		}
		fmt.Println(line)

	}
}

使用bufio 读文件,因为是读取到内存中,如果程序在运行过程中,关机则可能造成读取内容丢失。

3、使用ioutil读取文件

package main

import (
	"fmt"
	"io/ioutil"
)

func main() {
	content, err := ioutil.ReadFile("./main.go")
	if err != nil {
		fmt.Println("read file faild")
		return
	}
	fmt.Println(string(content))
}

读取文件全部内容

要求:按行读取文件

1.使用for 循环

2.使用for循环采用bufio 读取文件 以'\n'为分隔符

扫描二维码关注公众号,回复: 9894136 查看本文章
发布了66 篇原创文章 · 获赞 8 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/gnufre/article/details/103808257