![[입문] Go 언어로 파일 읽기/쓰기를 해보자](/tutorial-cover/post/[입문] Go 언어로 파일 읽기 쓰기를 해보자.png)
[입문] Go 언어로 파일 읽기/쓰기를 해보자
소개
주의점
독자의 지식 레벨은, 이하의 분을 상정하고 있습니다.
실행 환경
파일 로드
사전 준비
test.txt
Hi.
This is a test file.
소스 코드
FileRead.go
package main
import (
"fmt"
"log"
"os"
)
const BUFSIZE = 1024 //読み込む際のバッファサイズ指定
func main() {
file, err := os.Open(`C:\Users\Romeo\Documents\test.txt`) //ファイルオープン
if err != nil {
log.Fatal(err) //ファイルが開けなかったときエラー出力
}
defer file.Close() //全部の処理終了後にファイルクローズ
buf := make([]byte, BUFSIZE) //byte型配列に格納
for { //繰り返し読み込み
n, err := file.Read(buf) //ファイル読み込み
if n == 0 {
break //中身がなくなったらbreak
}
if err != nil {
log.Fatal(err)
break //ファイル読み込みに失敗したらbreak
}
fmt.Printf(string(buf[:n])) //読み込んだ内容を出力
}
}
실행 결과
C:\Users\Romeo\Documents\go> go run FileRead.go
Hi.
This is a test file.
소스 코드 해설
이번에 가져온 패키지는 3개입니다.
파일을 열 때 오류 변수가 반환됩니다. 확실히 받아, 에러 처리까지 기재합시다.
일부 발췌
file, err := os.Open(`C:\Users\Romeo\Documents\test.txt`) //ファイルオープン
if err != nil {
log.Fatal(err) //ファイルが開けなかったときエラー出力
}
defer file.Close() //ファイルクローズ
파일 쓰기
소스 코드
FileWrite.go
package main
import (
"os"
)
func main() {
file, err := os.Create(`C:\Users\Romeo\Documents\test2.txt`)
if err != nil {
log.Fatal(err) //ファイルが開けなかったときエラー出力
}
defer file.Close()
output := "testmessage"
file.Write(([]byte)(output))
}
실행 결과
test2.txt
testmessage