package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main() {
// Whole file → []byte (only for small/medium files)
data, err := os.ReadFile("config.toml")
if err != nil { panic(err) }
fmt.Println(string(data))
// Line-by-line — constant memory
f, _ := os.Open("/etc/hosts")
defer f.Close()
scanner := bufio.NewScanner(f)
for scanner.Scan() {
line := scanner.Text()
if line != "" { fmt.Println(line) }
}
if err := scanner.Err(); err != nil {
fmt.Println("scan error:", err)
}
// Stream bytes in chunks — for binary or very large files
big, _ := os.Open("/tmp/huge.bin")
defer big.Close()
buf := make([]byte, 4096)
for {
n, err := big.Read(buf)
if n > 0 {
// ... process buf[:n] ...
}
if err == io.EOF { break }
if err != nil { panic(err) }
}
}
Create a free account and build your private vault. Share publicly whenever you want.