Source File: ex24d_bufio/main.go

package main

import (
    "fmt"
    "os"
    "bufio"
    "log"
    "io"
)

func main() {
    build_log, err := os.Open("build.log")
    defer build_log.Close()
    if err != nil { log.Fatal(err) }

    out_file, err := os.OpenFile("out.log", os.O_RDWR|os.O_CREATE, 0644)
    defer out_file.Close()
    if err != nil { log.Fatal(err) }

    in_rd := bufio.NewReader(build_log)
    lines := 0

    for {
        line, err := in_rd.ReadString('\n')

        if err == io.EOF {
            break;
        } else if err != nil {
            log.Fatal(err)
        }

        out_file.WriteString(line)
        lines++
    }

    fmt.Println("read", lines, "lines")
}