82 lines
1.5 KiB
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()
|
||
|
}
|