缓冲区 高效的io读写 减少访问本地磁盘的次数
package main
import ("os"
"fmt")
func main{
filename := ""
file,err := os.Open(filename)
if err != nil{
fmt.println
return
}
defer os.Close()
//创建Reader对象
b1:=bufio.NewReader(file)
p := make([]byte,4096) /大小小于4096,因为上面的缓冲区固定了大小4096
n1,err :=b1.Read(p)
fmt.Println(n1)
}
//读取一行 ReadLine
package main
import ("os"
"fmt")
func main{
filename := ""
file,err := os.Open(filename)
if err != nil{
fmt.println
return
}
defer os.Close()
//创建Reader对象
b1:=bufio.NewReader(file)
data,flag,err := b1.ReadLine()//读取一行
fmt.Println(string(data))
//一行一行读取打印
package main
import ("os"
"fmt")
func main{
filename := ""
file,err := os.Open(filename)
if err != nil{
fmt.println
return
}
defer os.Close()
//创建Reader对象
b1:=bufio.NewReader(file)
//一行一行读取打印
for{
s1 ,err := b1.ReadString('\n')
if err == io.EOF{
fmt.Println()
}
fmt.Println(s1)
}
//但是存在问题,如果键盘输入有空格,就只能读取空格前
s2 := ""
fmt.Scanln(&s2)
fmt.Println(s2)
//有空格也能读取到
b2:=bufio.NewReader(os.Stdin)
s2,_ := b2.ReadString("\n")
//write
func main{
filename := ""
file,_ := os.OpenFile(filename,os.O_CREAT|os.O_WRONLY,OS.ModePerm)
defer file.close()
w1 := bufio.NewWriter(file)
n,err := w1.WriteString("hhhhh")
//此时写到了缓冲区
//需要刷新缓冲区
w1.Flush()
}