RosettaCodeData/Task/File-input-output/Go/file-input-output-2.go

38 lines
602 B
Go

package main
import (
"io"
"log"
"os"
)
func CopyFile(out, in string) (err error) {
var inf, outf *os.File
inf, err = os.Open(in)
if err != nil {
return
}
defer func() {
cErr := inf.Close()
if err == nil {
err = cErr
}
}()
outf, err = os.Create(out)
if err != nil {
return
}
_, err = io.Copy(outf, inf)
cErr := outf.Close()
if err == nil {
err = cErr
}
return
}
func main() {
if err := CopyFile("output.txt", "input.txt"); err != nil {
log.Fatal(err)
}
}