本篇演示从IO中读取内容,包括从字符串、终端以及磁盘文件读取内容
package main
import (
"fmt"
"io"
"os"
"strings"
)
func ReadFrom(reader io.Reader, num int) ([]byte, error) {
p := make([]byte, num)
n, err := reader.Read(p)
if n > 0 {
return p[:n], nil
}
return p, err
}
/*从字符串中读取内容*/
func ReadFromString() {
reader := strings.NewReader("ReadFromString is executing...")
data, err := ReadFrom(reader, 27)
if err == nil {
fmt.Println(string(data)) //输出:ReadFromString is executing
}
}
/*从命令行中读取内容*/
func ReadFromStdin() {
fmt.Println("please input:") //输入:hello world
data, err := ReadFrom(os.Stdin, 10)
if err == nil {
fmt.Println(string(data)) //输出:hello worl
}
}
/*从文件中读取内容*/
func ReadFromFile() {
file, _ := os.Open("d:/test.txt")
data, err := ReadFrom(file, 10)
if err == nil {
fmt.Println(string(data)) //输出:hello worl
}
}
func main() {
ReadFromString()
ReadFromStdin()
ReadFromFile()
}