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.