>백엔드 개발 >Golang >Go에서 파일의 한 줄을 문자열로 효율적으로 읽는 방법은 무엇입니까?

Go에서 파일의 한 줄을 문자열로 효율적으로 읽는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-08 03:18:11596검색

How to Efficiently Read a Line from a File as a String in Go?

Go에서 readline을 문자열로 변환

Go에서 표준 라이브러리는 바이트 배열을 반환하는 readline 작업을 위한 저수준 원시 함수를 제공합니다. readline 함수에서 문자열을 얻는 더 편리한 방법이 있습니까?

관용적인 솔루션

Go에서 문자열을 readline으로 변환하는 관용적인 접근 방식은 bufio를 활용하는 것입니다. 리더 구조체. Readln() 함수는 입력 버퍼 판독기에서 한 줄(후행 줄 바꿈 n 없음)을 반환합니다.

import (
    "bufio"
    "fmt"
    "os"
)

func readln(r *bufio.Reader) (string, error) {
    var (
        isPrefix bool = true
        err error = nil
        line, ln []byte
    )
    for isPrefix && err == nil {
        line, isPrefix, err = r.ReadLine()
        ln = append(ln, line...)
    }
    return string(ln), err
}

func main() {
    f, err := os.Open(fi)
    if err != nil {
        fmt.Println("error opening file= ", err)
        os.Exit(1)
    }
    r := bufio.NewReader(f)
    s, e := readln(r)
    for e == nil {
        fmt.Println(s)
        s, e = readln(r)
    }
}

이 함수는 파일에서 줄을 읽고 줄 바꿈 문자(n)를 제거한 후 각 줄을 콘솔.

위 내용은 Go에서 파일의 한 줄을 문자열로 효율적으로 읽는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.