파일 읽기, 파일을 한줄씩 읽기
Go if err != nil {
log.Fatal(err)
}
fmt.Println( string(rbuf) )
가장 간편하게 파일을 읽어 올 수 있는 방법입니다.
좀더 확장해서 .. 텍스트 파일을 한줄씩 읽어 드리려면
Go if err != nil {
log.Fatal(err)
}
defer file.Close()
scan := bufio.NewScanner(file)
for scan.Scan() {
fmt.Println(scan.Text())
}
err = scan.Err()
if err != nil {
log.Fatal(err)
}
이렇게 NewReader 를 사용하시거나
Go
file, err := os.Open("test.txt")
if err != nil {
panic(err)
}
defer file.Close()
reader := bufio.NewReader(file)
for {
line, _, err := reader.ReadLine()
if err != nil {
break
}
fmt.Println(line)
}이런식으로 NewReader 로 ReadLine 함수를 쓰셔도 됩니다. 한가지 주의 하실점은 ReadLine 함수의 리턴값이 3개인데 예제에선 두번째 값을 _로 무시하였지만 저 값은 isPrefix 라는 값으로 만약에 파일을 읽는 중에 라인의 중간까지만 읽힌 경우 읽혀진게 완전히 한 줄이 읽혀진게 아님을 알려주는 값입니다.
텍스트 파일을 대상으로 사용한 예라 무스하였습니다만. 만약 정적인 파일이 아니라 스트림 데이터에 대해서 이 방식을 쓸 경우에는 isPrefix 값에 따른 처리를 추가 하셔야 합니다.