package main
import (
"bufio"
"fmt"
"os"
)
func main() {
writeBuf := make([]byte, 1)
fp, err := os.OpenFile("test.d", os.O_CREATE, 0777)
bf := bufio.NewWriterSize(fp, 3)
writeBuf = []byte("1")
writeCount, err := bf.Write(writeBuf)
fmt.Println(writeCount)
writeBuf = []byte{'2'}
writeCount, err = bf.Write(writeBuf)
fmt.Println(writeCount)
writeBuf = []byte{'3'}
writeCount, err = bf.Write(writeBuf)
fmt.Println(writeCount)
writeBuf = []byte{'4'}
writeCount, err = bf.Write(writeBuf)
if err != nil {
fmt.Println("Error4:", err)
os.Exit(-1)
}
fmt.Println(writeCount)
bf.Flush()
fp.Close()
}
为什么这会给出错误:
1
1
1
Error4: write test.d: bad file descriptor
exit status 255
我认为 NewWriterSize 为 3 意味着在写入三个字节后,输出被刷新。我在第 4 次写入时收到错误消息。如果我将 NewWriterSize 缓冲区大小更改为 4,它可以工作。为简洁起见,我省略了未报告错误的错误检查。
HUWWW
相关分类