package main
import (
"bufio"
"fmt"
"os"
)
func main() {
r := bufio.NewReader(os.Stdin)
result, err := r.ReadString('\n')
if err != nil {
fmt.Println(err)
}
fmt.Println(result)
}
package main
import (
"fmt"
"os"
)
func main() {
//var buffer [512]byte
b := [120]byte{}
n , err := os.Stdin.Read(b[:])
if err != nil {
fmt.Println(err)
return
}
fmt.Println("count:", n, ", msg:", string(b[:]))
}
package main
import (
"bufio"
"fmt"
"io"
"io/ioutil"
"os"
)
func fullread(name string) {
//first
b , err := os.ReadFile(name)
if err != nil{
fmt.Println(string(b))
}
//第二种,第二种就是第一种
b , err = ioutil.ReadFile(name)
if err != nil {
fmt.Println("err2",err)
}
fmt.Println("b2",string(b))
//先创建具柄
f ,err :=os.Open(name)
if err != nil {
fmt.Println(err)
}
defer f.Close()
content ,err := ioutil.ReadAll(f)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(content))
}
func readForLine(name string){
f , _ := os.Open(name)
r := bufio.NewReader(f)
defer f.Close()
for {
b , err := r.ReadBytes('\n')
if err == io.EOF {
break
}
fmt.Println(string(b))
}
}
func readByBytes(name string) {
f , _ := os.Open(name)
r := bufio.NewReader(f)
buf := make([]byte,1024)
for {
n , err := r.Read(buf)
if err != nil {
fmt.Println(err)
}
if err == io.EOF || n == 0{
break
}
fmt.Println(string(buf[:n]))
}
}
func main() {
name := "main.go"
//fullread("main.go")
//readForLine("main.go")
readByBytes(name)
}