[go] bufio 패키지의 사용법
Go 언어의 bufio
패키지는 입력 및 출력 작업을 위한 버퍼링 기능을 제공합니다. 이를 통해 입출력 작업의 성능을 향상시키고, 더 효율적인 데이터 처리를 할 수 있습니다.
bufio 패키지의 주요 기능
bufio
패키지는 다음과 같은 주요 기능을 제공합니다.
1. 버퍼링을 통한 입출력 최적화
bufio
패키지는 버퍼링을 통해 입출력 작업의 효율을 높일 수 있습니다. 작은 블록으로 나뉘어진 데이터를 읽거나 쓸 때, 시스템 콜의 횟수를 줄여 성능을 개선할 수 있습니다.
2. Scanner를 이용한 편리한 데이터 읽기
bufio.Scanner
를 사용하면 텍스트 기반의 입력에서 라인 단위로 데이터를 쉽게 읽을 수 있습니다. 이를 통해 파일이나 표준 입력에서 편리하게 데이터를 처리할 수 있습니다.
3. 효율적인 쓰기 작업
bufio.Writer
를 사용하면 작은 블록으로 나뉘어진 데이터를 효율적으로 쓸 수 있습니다. 데이터가 버퍼에 차면 flush를 호출하여 실제 디스크나 네트워크에 쓸 수 있습니다.
bufio를 이용한 예제
다음은 bufio
패키지를 사용하여 파일을 읽고 쓰는 간단한 예제 코드입니다.
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
// 파일 열기
file, err := os.Open("input.txt")
if err != nil {
panic(err)
}
defer file.Close()
// bufio.Scanner를 이용한 텍스트 읽기
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil {
panic(err)
}
// bufio.Writer를 이용한 텍스트 쓰기
outputFile, err := os.Create("output.txt")
if err != nil {
panic(err)
}
defer outputFile.Close()
writer := bufio.NewWriter(outputFile)
_, err = writer.WriteString("Hello, bufio!\n")
if err != nil {
panic(err)
}
writer.Flush()
}
위의 예제는 bufio.Scanner
를 사용하여 파일에서 텍스트를 읽고, bufio.Writer
를 사용하여 텍스트를 파일에 쓰는 방법을 보여줍니다.
bufio
패키지를 사용하면 입출력 작업을 효율적으로 처리할 수 있으며, 텍스트 데이터를 라인 단위로 읽거나 쓰는 작업을 간편하게 수행할 수 있습니다.
더 많은 정보는 공식 문서를 참고하세요.