wangpl_study/day05/file/main.go

82 lines
1.5 KiB
Go

package main
import (
"bufio"
"fmt"
"io"
"io/ioutil"
"os"
)
// 通过ioutil去读取
func readFromFileByIoutil() {
ret, err := ioutil.ReadFile("./main.go")
if err != nil {
fmt.Printf("read file error,err:%v\n", err)
return
}
fmt.Println(string(ret))
}
// 通过ioutil去读取
func readFromFileByIoutil() {
file, err := ioutil.ReadFile("./main.go")
if err != nil {
fmt.Printf("read file error: err%v\n", err)
return
}
fmt.Println(file)
}
// 使用bufio去读取文件
func readFromFilebyBufio() {
fileObj, err := os.Open("./main.go")
if err != nil {
fmt.Printf("Open file failed,err:%v", err)
}
defer fileObj.Close()
//上述记得关闭文件
reader := bufio.NewReader(fileObj)
//创建一个用来从文件中读内容的对象
for {
line, err := reader.ReadString('\n')
if err == io.EOF {
return
}
if err != nil {
fmt.Printf("read line failed,err:%v", err)
return
}
fmt.Print(line)
}
}
func main() {
// fileObj, err := os.Open("./main.go")
// if err != nil {
// fmt.Printf("open file failed,err:%v", err)
// return
// }
// defer fileObj.Close()
// var tmp [128]byte
// //读文件
// for {
// n, err := fileObj.Read(tmp[:])
// if err == io.EOF {
// fmt.Println("读完了")
// return
// }
// if err != nil {
// fmt.Printf("read failed!:%v", err)
// return
// }
// fmt.Printf("读了%d个字节", n)
// fmt.Println(string(tmp[:n]))
// if n < 128 {
// return
// }
// }
// readFromFilebyBufio()
readFromFileByIoutil()
}