[go] bufio 패키지를 사용한 큰 파일 처리
Go 언어를 사용하여 큰 파일을 효율적으로 처리해야 하는 경우가 있습니다. bufio 패키지는 이러한 작업을 수행하는 데 유용한 기능을 제공합니다.
bufio 패키지
Go 언어의 bufio 패키지는 입력 및 출력을 버퍼링하는 데 사용됩니다. 이를 통해 입출력 속도를 향상시키고, 작은 조각 단위로 데이터를 다루는 데 용이합니다.
import (
"bufio"
"fmt"
"os"
)
큰 파일 읽기
다음은 bufio 패키지를 사용하여 큰 파일을 읽는 예제입니다.
func main() {
file, err := os.Open("largefile.txt")
if err != nil {
fmt.Println("파일 열기 오류:", err)
return
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
line := scanner.Text()
fmt.Println(line)
}
if err := scanner.Err(); err != nil {
fmt.Println("파일 읽기 오류:", err)
}
}
이 예제는 largefile.txt
파일을 열고, Scanner를 사용하여 파일을 한 줄씩 읽어들입니다.
큰 파일 쓰기
bufio 패키지를 사용하여 큰 파일에 데이터를 쓰는 방법도 간단합니다.
func main() {
file, err := os.Create("output.txt")
if err != nil {
fmt.Println("파일 생성 오류:", err)
return
}
defer file.Close()
writer := bufio.NewWriter(file)
_, err = writer.WriteString("This is a line\n")
if err != nil {
fmt.Println("파일 쓰기 오류:", err)
return
}
err = writer.Flush()
if err != nil {
fmt.Println("Flush 오류:", err)
}
}
위의 예제에서는 output.txt
파일을 만들고, BufferedWriter를 사용하여 데이터를 파일에 작성합니다.
결론
Go 언어의 bufio 패키지는 큰 파일을 효율적으로 처리하는 데 유용한 기능을 제공합니다. 파일을 읽거나 쓸 때 속도와 성능을 높이기 위해 bufio 패키지를 적극적으로 활용할 수 있습니다.
이로써 Go 언어에서 bufio 패키지를 사용한 큰 파일 처리에 대한 간단한 사용법을 알아보았습니다.