[go] Go 언어의 파일 입출력과 디렉토리 관리 기능
Go 언어는 파일 입출력 및 디렉토리 관리를 위한 풍부한 표준 라이브러리를 제공합니다. 이 기능들은 파일 생성, 읽기, 쓰기, 삭제, 복사, 이동 및 디렉토리 조작과 같은 다양한 작업을 수행할 수 있도록 도와줍니다. 이번 글에서는 Go 언어에서의 파일 입출력 및 디렉토리 관리 방법에 대해 알아보겠습니다.
파일 입출력
Go 언어에서 파일을 열고 핸들링하기 위해서는 os
패키지와 io
패키지를 주로 사용합니다. 아래는 기본적인 파일 읽기 및 쓰기 예제입니다.
파일 읽기
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.Open("example.txt")
if err != nil {
fmt.Println("파일을 열 수 없습니다.", err)
return
}
defer file.Close()
data := make([]byte, 100)
count, err := file.Read(data)
if err != nil {
fmt.Println("파일을 읽을 수 없습니다.", err)
return
}
fmt.Println("파일 내용:", string(data[:count]))
}
파일 쓰기
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.Create("output.txt")
if err != nil {
fmt.Println("파일을 생성할 수 없습니다.", err)
return
}
defer file.Close()
data := []byte("Hello, Go File IO!")
_, err = file.Write(data)
if err != nil {
fmt.Println("파일을 쓸 수 없습니다.", err)
return
}
fmt.Println("파일 쓰기 완료.")
}
디렉토리 관리
Go 언어를 사용하여 디렉토리를 생성하고 파일을 복사하거나 이동하는 등의 작업을 수행할 수 있습니다. 아래는 기본적인 디렉토리 관리 예제입니다.
디렉토리 생성
package main
import (
"fmt"
"os"
)
func main() {
err := os.Mkdir("example_dir", 0755)
if err != nil {
fmt.Println("디렉토리 생성에 실패했습니다.", err)
return
}
fmt.Println("디렉토리 생성 완료.")
}
파일 복사
package main
import (
"fmt"
"io"
"os"
)
func main() {
sourceFile, err := os.Open("source.txt")
if err != nil {
fmt.Println("원본 파일을 열 수 없습니다.", err)
return
}
defer sourceFile.Close()
destinationFile, err := os.Create("destination.txt")
if err != nil {
fmt.Println("대상 파일을 생성할 수 없습니다.", err)
return
}
defer destinationFile.Close()
_, err = io.Copy(destinationFile, sourceFile)
if err != nil {
fmt.Println("파일을 복사할 수 없습니다.", err)
return
}
fmt.Println("파일 복사 완료.")
}
마무리
Go 언어는 파일 입출력 및 디렉토리 관리를 위한 풍부한 라이브러리를 제공하여 간편하게 파일 및 디렉토리 작업을 수행할 수 있습니다.
더 많은 자세한 사용법과 기능은 공식 Go 문서를 참고하시기 바랍니다.