📜  Golang 中的 io.LimitReader()函数示例

📅  最后修改于: 2021-10-25 02:15:46             🧑  作者: Mango

在 Go 语言中, io包为 I/O 原语提供基本接口。它的主要工作是封装这种原语之王的持续实现。 Go 语言中的LimitReader()函数用于返回一个“Reader”,它从规定的“r”中读取,但如果在读取规定的“n”个字节后到达 EOF,即文件末尾,它会暂停。而且,这个函数是在io包下定义的。在这里,您需要导入“io”包才能使用这些功能。

句法:

func LimitReader(r Reader, n int64) Reader

这里,“r”是指定的Reader,“n”是字节数。

返回值:它返回一个从指定的“r”读取的 Reader。

下面的例子说明了上述方法的使用:

示例 1:

// Golang program to illustrate the usage of
// io.LimitReader() function
  
// Including main package
package main
  
// Importing fmt, io, strings, and os
import (
    "fmt"
    "io"
    "os"
    "strings"
)
  
// Calling main
func main() {
  
    // Defining r using NewReader
    r := strings.NewReader("Geeks\n")
  
    // Calling LimitReader method with its parameters
    res := io.LimitReader(r, 3)
  
    // Calling Copy method with its parameters
    op, err := io.Copy(os.Stdout, res)
  
    // If error is not nil then panics
    if err != nil {
        panic(err)
    }
  
    // Prints output
    fmt.Printf("\nn: %v\n", op)
}

输出:

Gee
n: 3

在上面的例子中,Copy() 方法用于返回“Reader”,而字符串的NewReader() 方法用于写入要读取的内容。

示例 2:

// Golang program to illustrate the usage of
// io.LimitReader() function
  
// Including main package
package main
  
// Importing fmt, io, strings, and os
import (
    "fmt"
    "io"
    "os"
    "strings"
)
  
// Calling main
func main() {
  
    // Defining r using NewReader
    r := strings.NewReader("GfG\nis\na\nCS-Portal.\n")
  
    // Calling LimitReader method with its parameters
    res := io.LimitReader(r, 8)
  
    // Calling Copy method with its parameters
    op, err := io.Copy(os.Stdout, res)
  
    // If error is not nil then panics
    if err != nil {
        panic(err)
    }
  
    // Prints output
    fmt.Printf("\nn: %v\n", op)
}

输出:

GfG
is
a
n: 8