Read a file (stdin) line by line
yourbasic.org/golang

Read from file
Use a bufio.Scanner to read a file line by line.
file, err := os.Open("file.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
Read from stdin
Use os.Stdin to read from the standard input stream.
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil {
log.Println(err)
}
Read from any stream
A bufio.Scanner can read from any stream of bytes, as long as it implements
the io.Reader interface.
See How to use the io.Reader interface.
Further reading
For more advanced scanning, see the examples in the bufio.Scanner documentation.