Go에서 파일을 문자열로 읽기
Musfirah Waseem
2023년6월20일
-
Go에서
ioutil.ReadFile()
메서드 사용 -
Go에서
File.Read()
메서드 사용 -
Go에서
buf.ReadFrom()
메서드 사용 -
Go에서
strings.Builder
메서드 사용
GoLang은 많은 파일 작업 도구를 제공하며 그 중 하나는 파일을 문자열로 읽는 방법입니다. ioutil.ReadFile()
, File.Read()
, buf.ReadFrom()
및 strings.Builder
는 파일 내용을 끈.
Go에서 ioutil.ReadFile()
메서드 사용
package main
import
(
"fmt"
"io/ioutil"
)
func main() {
inputData := []byte("Hello, World!")
err := ioutil.WriteFile("File.txt", inputData, 0777)
Data, err := ioutil.ReadFile("File.txt")
if err != nil {
fmt.Println(err)
}
fmt.Print(string(Data))
}
출력:
Hello, World!
위의 코드를 사용하면 새 파일을 만들고 데이터를 쓸 수 있습니다. 생성된 파일은 ioutil.ReadFile()
메서드를 사용하여 읽습니다.
Go에서 File.Read()
메서드 사용
package main
import (
"fmt"
"io/ioutil"
"log"
"os"
"io"
)
func main() {
inputData := []byte("Hello, World!")
err := ioutil.WriteFile("file.txt", inputData, 0777)
f, err := os.Open("file.txt")
if err != nil {
log.Fatalf("Error in reading file: %v", err)
}
defer f.Close()
buf := make([]byte, 1024)
for {
n, err := f.Read(buf)
if err == io.EOF {
break
}
if err != nil {
fmt.Println(err)
continue
}
if n > 0 {
fmt.Println(string(buf[:n]))
}
}
}
출력:
Hello, World!
위의 코드에서는 파일을 분할하여 읽습니다. 매번 읽고자 하는 버퍼 크기를 지정한 다음 len(buf)
만 메모리에 할당됩니다.
그런 다음 각 반복을 통해 파일을 조각으로 읽습니다. 이 방법은 파일 내용이 메모리에 완전히 들어갈 수 없는 대용량 파일에 주로 사용됩니다.
Go에서 buf.ReadFrom()
메서드 사용
package main
import (
"fmt"
"io/ioutil"
"os"
"bytes"
"log"
)
func main() {
inputData := []byte("Hello, World!")
err := ioutil.WriteFile("File.txt", inputData, 0777)
f, err := os.Open("File.txt")
if err != nil{
log.Fatal(err)
}
defer f.Close()
buf := new(bytes.Buffer)
buf.ReadFrom(f)
data := buf.String()
fmt.Print(data)
}
출력:
Hello, World!
위의 코드에서 EOF
까지 파일에서 데이터를 읽고 버퍼에 추가하는 buf.ReadFrom()
을 사용했습니다. 버퍼 크기는 필요에 따라 커집니다.
Go에서 strings.Builder
메서드 사용
package main
import (
"io/ioutil"
"io"
"os"
"strings"
)
func main() {
inputData := []byte("Hello, World!")
err := ioutil.WriteFile("file.txt", inputData, 0777)
f, err := os.Open("file.txt")
if err != nil {
panic(err)
}
defer f.Close()
b := new(strings.Builder)
io.Copy(b, f)
print(b.String())
}
출력:
Hello, World!
위의 코드에서 strings.Builder
는 문자열을 연결합니다. 데이터는 파일에서 한 장씩 읽은 다음 함께 인쇄됩니다.
작가: Musfirah Waseem
Musfirah is a student of computer science from the best university in Pakistan. She has a knack for programming and everything related. She is a tech geek who loves to help people as much as possible.
LinkedIn