读取文件
- 读取文件到缓存区
file, err := os.Open("heap.txt")
if err != nil {
fmt.Println("打开文件失败:", err)
return
}
defer file.Close()
buffer := make([]byte, 10)
for {
n, err := file.Read(buffer)
if err != nil {
break
}
fmt.Print(string(buffer[:n]))
}
- 一次性读取整个文件
data, err := os.ReadFile("heap.txt")
if err != nil {
fmt.Println("读取文件失败:", err)
return
}
fmt.Println(string(data))
- 逐行读取文件
file, err := os.Open("heap.txt")
if err != nil {
fmt.Println("打开文件失败:", err)
return
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil {
fmt.Println("读取文件失败:", err)
return
}
命令行读取
scanner := bufio.NewScanner(os.Stdin)
fmt.Print("请输入字符串:")
scanner.Scan()
text := scanner.Text()
fmt.Println("你输入的字符串是:", text)
读取字符串
str := "Hello, World!"
reader := strings.NewReader(str)
buf := make([]byte, len(str))
n, err := reader.Read(buf)
if err != nil && err != io.EOF {
fmt.Println("读取错误:", err)
return
}
fmt.Printf("读取 %d 个字节,内容为:%s\n", n, string(buf))