1.读取大文件
1.1 读取大文件
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main() {
file, err := os.Open("./test.txt")
if err != nil {
fmt.Printf("1.error:%v\n", err)
}
fmt.Printf("2.file:%v\n", file)
defer file.Close()
reader := bufio.NewReader(file)
for {
str, err := reader.ReadString('\n')
if err == nil {
fmt.Printf("3.str:%v\n", str)
} else if err == io.EOF {
break
} else {
fmt.Printf("4.error:%v\n", err)
}
}
}
输出
2.file:&{0xc0000ae120}
3.str:hello world
3.str:go
3.str:python
1.2 读取小文件
package main
import (
"fmt"
"io/ioutil"
)
func main() {
file := "./test.txt"
content, err := ioutil.ReadFile(file)
if err != nil {
fmt.Printf("1.error:%v\n", err)
} else {
fmt.Printf("2.content:%v\n", content)
fmt.Printf("3.content:%v\n", string(content))
}
}
输出
2.content:[104 101 108 108 111 32 119 111 114 108 100 10 103 111 10 112 121 116 104 111 110 10]
3.content:hello world
go
python
2.写文件
package main
import (
"fmt"
"os"
"bufio"
)
func main() {
fileName := "./test.txt"
file, err := os.OpenFile(fileName, os.O_WRONLY | os.O_CREATE,0666)
if err != nil{
}else{
fmt.Printf("1.打开文件出错:%v\n", err)
}
str := "hello world\n"
writer := bufio.NewWriter(file)
for i :=0; i<5;i++{
count, err := writer.WriteString(str)
fmt.Printf("count:%v err:%v\n", count, err)
}
err2 := writer.Flush()
fmt.Printf("err2:%v\n", err2)
defer file.Close()
}
输出
1.打开文件出错:<nil>
count:12 err:<nil>
count:12 err:<nil>
count:12 err:<nil>
count:12 err:<nil>
count:12 err:<nil>
err2:<nil>
zhanglei@zhangleid