Source File: ex24c_raw_io/main.go

package main

import (
    "fmt"
    "os"
    "log"
)

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

    finfo, err := in_file.Stat()
    if err != nil { log.Fatal(err) }

    in_data := make([]byte, finfo.Size())

    n, err := in_file.Read(in_data)
    if err != nil { log.Fatal(err) }

    fmt.Println("read", n, "bytes")

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

    _, err = out_file.Write(in_data)
    if err != nil { log.Fatal(err) }
}