Below golang program reads a file line by line by creating a Reader object from the io.Reader object using bufio. Package bufio wraps io.Reader object creating a Reader.
$ cat /tmp/algo.txt
Merge Sort
QuickSort
Depth First Search
Breadth First Search
N Queens Problem
Matrix Chain Multiplication
Go ( Golang ) : Reading a file line by line using reader
package main
import (
"bufio"
"io"
"os"
"fmt"
)
func check(e error) {
if e != nil {
panic(e)
}
}
func ReadFile (filepath string) {
file, err := os.Open(filepath)
check(err)
defer file.Close()
// Reading from a file using reader.
reader := bufio.NewReader(file)
var line string
var cnt = 1
for {
line, err = reader.ReadString('\n')
if ( line == "" || ( err != nil && err != io.EOF ) ) {
break
}
// As the line contains newline "\n" character at the end, we could remove it.
line = line[:len(line)-1]
fmt.Printf("Line %d : [" + line + "], Length : [%d]\n", cnt, len(line))
cnt++
}
}
func main() {
ReadFile("/tmp/algo.txt")
}
Output
Line 1 : [Merge Sort], Length : [10]
Line 2 : [QuickSort], Length : [9]
Line 3 : [Depth First Search], Length : [18]
Line 4 : [Breadth First Search], Length : [20]
Line 5 : [N Queens Problem], Length : [16]
Line 6 : [Matrix Chain Multiplication], Length : [27]
Below golang program reads a file line by line using Scanner that has an easy interface for reading text delimited by newline character.
$ cat /tmp/must_watch.txt
Breaking Bad
Better Call Saul
Game Of Thrones
Brooklyn 99
Dark
Go ( Golang ) : Reading a file line by line using scanner
package main
import (
"bufio"
"os"
"fmt"
)
func check(e error) {
if e != nil {
panic(e)
}
}
func ReadFile (filepath string) {
file, err := os.Open(filepath)
check(err)
defer file.Close()
// Reading from a file using scanner.
scanner := bufio.NewScanner(file)
var line string
var cnt = 1
for scanner.Scan() {
line = scanner.Text()
fmt.Printf("Line %d : [" + line + "], Length : [%d]\n", cnt, len(line))
cnt++
}
}
func main() {
ReadFile("/tmp/must_watch.txt")
}
Output
Line 1 : [Breaking Bad], Length : [12]
Line 2 : [Better Call Saul], Length : [16]
Line 3 : [Game Of Thrones], Length : [15]
Line 4 : [Brooklyn 99], Length : [11]
Line 5 : [Dark], Length : [4]
© 2019-2026 Algotree.org | All rights reserved.
This content is provided for educational purposes. Feel free to learn, practice, and share knowledge.
For questions or contributions, visit algotree.org
"The trouble with programmers is that you can never tell what a programmer is doing until it's too late. - Seymour Cray"