Go(Golang) - 파일(File) Read/Write
오늘은 Golang의 표준 지원 패키지인 io/ioutil 패키지의 파일 쓰기/읽기 관련 지원 기능에 대해서 간단하게
예제를 작성해보면서 설명드리겠습니다.
가능하면 소스코드를 다운로드 받으셔서 IDE에서 반드시 실행해보시길 권장드립니다.
Go 관련 포스팅 : Golang 관련
Go 관련 포스팅 : Golang 관련
Go(Golang) - 파일 읽기/쓰기 예제 소스 코드(ioutil)
Golang - io/ioutil 패키지의 파일 처리 관련 메소드를 통해서 파일 쓰기/읽기 및 버퍼 관련 처리를 보다 쉽게
사용하실 수 있습니다.
아래 예제를 통해서 파일 처리의 기본 흐름을 익히실 수 있습니다.
go_io_ex1.go
1234567891011121314151617181920212223242526272829303132333435363738 //파일 I/O package main import ( "fmt" "io/ioutil" "os") func errCheck(e error) { if e != nil { panic(e) }} func main() { //파일 읽기,쓰기 -> ioutil 패키지 활용 //더욱 편리하고 직관적으로 파일을 읽고 쓰기 가능 //아래 메소드 확인 가능 //WriteFile(), ReadFile(), ReadAll() 등 사용 가능 //https://golang.org/pkg/io/ioutil/ s := "Hello Golang!\n File Write Test!\n" //파일모드 //읽기 : 4, 쓰기 : 2, 실행 : 1 //소유자, 그룹, 기타 사용자 순서 //https://golang.org/pkg/os/#FileMode err := ioutil.WriteFile("c:/go_study/src/section11/test_write_ex1.txt", []byte(s), os.FileMode(644)) errCheck(err) data, err := ioutil.ReadFile("c:/go_study/src/section11/sample.txt") errCheck(err) fmt.Println("==============================================\n") fmt.Println(string(data)) fmt.Println("==============================================\n")} cs
- 7번 라인 : ioutil 패키지 임포트
- 11-15번 라인 : 파일 관련 작업 중 예외 발생 처리 함수- 24번 라인 : 파일에 Write 할 텍스트 선언- 30번 라인 : 파일 쓰기(WriteFile 사용)- 33번 라인 : 파일 읽기(ReadFile 사용)- 36번 라인 : 파일에서 읽어온 내용을 출력
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | //파일 I/O package main import ( "fmt" "io/ioutil" "os" ) func errCheck(e error) { if e != nil { panic(e) } } func main() { //파일 읽기,쓰기 -> ioutil 패키지 활용 //더욱 편리하고 직관적으로 파일을 읽고 쓰기 가능 //아래 메소드 확인 가능 //WriteFile(), ReadFile(), ReadAll() 등 사용 가능 //https://golang.org/pkg/io/ioutil/ s := "Hello Golang!\n File Write Test!\n" //파일모드 //읽기 : 4, 쓰기 : 2, 실행 : 1 //소유자, 그룹, 기타 사용자 순서 //https://golang.org/pkg/os/#FileMode err := ioutil.WriteFile("c:/go_study/src/section11/test_write_ex1.txt", []byte(s), os.FileMode(644)) errCheck(err) data, err := ioutil.ReadFile("c:/go_study/src/section11/sample.txt") errCheck(err) fmt.Println("==============================================\n") fmt.Println(string(data)) fmt.Println("==============================================\n") } | cs |
- 7번 라인 : ioutil 패키지 임포트
- 11-15번 라인 : 파일 관련 작업 중 예외 발생 처리 함수
Golang - i/o 패키지의 추가적인 상세 설명은 이 곳을 참고해 주세요.
Golang - i/o 패키지의 추가적인 상세 설명은 이 곳을 참고해 주세요.
Go(Golang) - 파일 읽기/쓰기 예제 실행 화면
아래 이미지로 실제 실행 화면을 확인하실 수 있습니다. 파일 경로를 본인 PC에 맞게 설정해 주세요.
실제 실행 화면
마무리
이번 포스팅에서는 Golang의 io/ioutil 패키지의 파일 처리 관련 기본 사용 방법을 알아보았습니다.
Go의 표준 os 표준 패키지에서도 os.Create() 메소드를 통해서 Read(), Write() 등으로 파일처리를
지원하지만, 보다 개량된 버전인 ioutil 패키지의 유틸리티를 통해서 편리하게 파일을 읽거나 쓸 수 있으며,
파일 권한 관리, 바이트스트림 인터페이스 지원 등의 부가적인 기능을 사용하실 수 있습니다.
다음 시간에는 bufio 패키지를 활용해서 효율적인 입출력을 버퍼링하는 방법에 대해서 알아보겠습니다.
소스코드 다운로드 : go_io.zip
'언어 > Go' 카테고리의 다른 글
Go(Golang) - 자료구조 Stack(스택) 작성 예제 및 소스파일 (1) | 2018.10.02 |
---|---|
Go(Golang) - 웹 서버(Web Server) Logging 구현(Http) 예제 및 소스파일 (0) | 2018.06.29 |
Go(Golang) - 웹 서버(Web Server) 기초 구현(Http) 예제 및 소스파일 (2) | 2018.06.27 |
Go(Golang) - 맥(Mac) 개발 환경 설치 및 기본 설정 정리(2) (0) | 2018.03.30 |
Go(Golang) - 맥(Mac) 개발 환경 설치 및 기본 설정 정리(1) (5) | 2018.03.27 |