Golang 用 buffer 读取文件
    		       		warning:
    		            这篇文章距离上次修改已过430天,其中的内容可能已经有所变动。
    		        
        		                
                在 Golang 中,我们可以使用 bufio 包的 NewReader 函数创建一个新的 Reader 对象,然后使用该对象的 ReadBytes 或 ReadString 方法来读取文件。
以下是一些示例代码:
方法一:使用 ReadBytes 方法
package main
 
import (
    "bufio"
    "fmt"
    "os"
)
 
func main() {
    file, err := os.Open("test.txt")
    if err != nil {
        fmt.Println("Error opening file:", err)
        return
    }
    defer file.Close()
 
    reader := bufio.NewReader(file)
    for {
        line, err := reader.ReadBytes('\n')
        if err != nil {
            break
        }
 
        fmt.Println(string(line))
    }
}在这个例子中,ReadBytes 方法读取到换行符 \n 时,才停止读取,然后将读取到的内容转换为字符串并打印。
方法二:使用 ReadString 方法
package main
 
import (
    "bufio"
    "fmt"
    "os"
)
 
func main() {
    file, err := os.Open("test.txt")
    if err != nil {
        fmt.Println("Error opening file:", err)
        return
    }
    defer file.Close()
 
    reader := bufio.NewReader(file)
    for {
        line, err := reader.ReadString('\n')
        if err != nil {
            break
        }
 
        fmt.Println(line)
    }
}在这个例子中,ReadString 方法读取到换行符 \n 时,才停止读取,然后将读取到的内容并打印。
注意:这两个方法都会在读取到定界符时停止读取,并且包含定界符。如果文件的最后一行没有以定界符结束,那么在读取完文件后,ReadBytes 和 ReadString 会返回 io.EOF 作为错误。这是正常的,我们可以通过检查这个错误来判断是否还有更多的数据可以读取。
评论已关闭