golang 简单的go程序从控制台行读取
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 简单的go程序从控制台行读取相关的知识,希望对你有一定的参考价值。
package main
import (
"fmt"
"bufio"
"os"
)
func main(){
reader := bufio.NewReader(os.Stdin)
fmt.Println("Simple Shell")
fmt.Println("---------------------")
for {
fmt.Print("-> ")
text, _ := reader.ReadString('\n')
fmt.Println(text)
}
}
golang 从Go中的SDIN读取大文本数据
package main
import "fmt"
import "bufio"
import "os"
func main() {
f, _ := os.Create("outputgo.txt")
reader := bufio.NewReader(os.Stdin)
for {
line, err := reader.ReadString('\n')
if err != nil {
fmt.Println("%s", line)
return
}
f.WriteString(line)
}
}
//------------
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
fmt.Println(scanner.Text()) // Println will add back the final '\n'
}
if err := scanner.Err(); err != nil {
fmt.Fprintln(os.Stderr, "reading standard input:", err)
}
}
//-----------------
// Create a buffer to hold the stream data
data := make([]byte, 5000)
// Read data from stdin in a loop
for {
_, err = os.Stdin.Read(data)
if err != nil {
panic(err)
}
index := bytes.Index(data, []byte("\n"))
data = data[:index]
var myStruct MyStruct
err = json.Unmarshal(data, &myStruct)
if err != nil {
panic(err)
}
//(Do something with myStruct)
}
//-----------------
import "os"
import "log"
import "bufio"
func main() {
reader := bufio.NewReader(os.Stdin)
for {
line, err := reader.ReadString('\n')
if err != nil {
// You may check here if err == io.EOF
break
}
log.Println(line)
}
}
//---------------
package main
import "os"
import "log"
import "io/ioutil"
func main() {
bytes, err := ioutil.ReadAll(os.Stdin)
log.Println(err, string(bytes))
}
//----------------
以上是关于golang 简单的go程序从控制台行读取的主要内容,如果未能解决你的问题,请参考以下文章
golang命令行库Cobra的使用
golang 从Go中的SDIN读取大文本数据
go语言-golang基础-流程控制
Golang系列文章:打印命令行参数
Go -- 读取文件内容
Golang并发读取超大文件