Go 按固定byte长度读取文本文件的代码示范
2023-03-17
示例代码展示了如何使用Go语言中的`bufio`包按固定长度读取文本文件内容。
以下是一个示例代码,可以按固定长度(以byte计)读取文本文件:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
// 打开文件
file, err := os.Open("example.txt")
if err != nil {
fmt.Println("打开文件失败:", err)
return
}
defer file.Close()
// 设置读取的长度
const readLength = 10
// 使用带缓冲区的读取器
reader := bufio.NewReader(file)
buffer := make([]byte, readLength)
// 循环读取文件
for {
// 读取文件内容到缓冲区
bytesRead, err := reader.Read(buffer)
// 处理读取错误和结束条件
if err != nil {
fmt.Println("读取文件失败:", err)
break
}
if bytesRead == 0 {
break
}
// 处理读取结果
fmt.Println(string(buffer[:bytesRead]))
}
}
在此示例中,我们打开文本文件example.txt
,然后使用bufio.NewReader()
函数创建了一个带有缓冲区的文件读取器。我们还指定了一个常量readLength
,用于指定每次读取的字节数。在循环中,我们调用reader.Read()
函数读取文件内容,并将其存储在缓冲区中。然后,我们检查是否出现了任何错误或达到了文件的结尾,并将读取到的内容打印到控制台上。循环将继续,直到整个文件被读取完成。