本篇演示從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()
}