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并发读取超大文件