在 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