go 언어는 일단 os 패키지를 이용하여 파일이 open/close를 처리한다.
os 패키지 create를 이용하여 파일을 생성한다.
io 패키지의 EOF 상수를 이용하여 파일이 끝을 처리한다.
package main
import (
"io"
"os"
)
func main() {
// open input file
fi, err := os.Open("../input.txt")
if err != nil {
panic(err)
}
// close fi on exit and check for its returned error
defer func() {
if err := fi.Close(); err != nil {
panic(err)
}
}()
// open output file
fo, err := os.Create("../output.txt")
if err != nil {
panic(err)
}
// close fo on exit and check for its returned error
defer func() {
if err := fo.Close(); err != nil {
panic(err)
}
}()
// make a buffer to keep chunks that are read
buf := make([]byte, 1024)
for {
// read a chunk
n, err := fi.Read(buf)
// do not read EOF
if err != nil && err != io.EOF {
panic(err)
}
// do not read a chunk
if n == 0 {
break
}
// write a chunk
if _, err := fo.Write(buf[:n]); err != nil {
panic(err)
}
}
}
댓글
댓글 쓰기