앞서서 출력함수 IO, 문자열 처리 및 조작 그리고 정규식에 대해서 알아보았으며 이후에 3장을 보도록하자 2장은 아래포스팅을 참고하자
https://joylucky7.tistory.com/41
◆ OS 패키지의 파일 처리 함수
▶ func Create(name string) (file *File, err error): 기존 파일을 열거나 새 파일을 생성
▶ func Open(name string) (file *File, err error): 기존 파일을 열기
▶ func (f *File) Close() error: 열린 파일을 닫음
◆ fmt 패키지의 파일 입출력 함수
▶ func Fprint(w io.Writer, a ...interface{}) (n int, err error): 값을 그대로 문자열로 만든 뒤 파일에 저장
▶ func Fprintln(w io.Writer, a ...intertace{}) (n int, err error): 값을 그대로 문자열로 만든 뒤 문자열 끝에 개행 문자(\n)를 붙이고 파일에 저장
▶ func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error): 형식을 지정하여 파일에 저장
▶ func Fscan(r io.Reader, a ...interface{}) (n int, err error): 파일을 읽은 뒤 공백, 개행 문자로 구분 된 문자열에서 입력을 받음
▶ func Fscanln(r io.Reader, a ...interface{}) (n int, err error): 파일을 읽은 뒤 공백으로 구분된 문자 열에서 입력을 받음
▶ func Fscanf(r io.Reader, format string, a ...interfaced) (n int, err error): 파일을 읽은 뒤 문자 열에서 형식을 지정하여 입력을 받음
◆ 파일에 기록
package main
import (
"fmt"
"os"
)
func main() {
file1, _ := os.Create("test_1.txt")
defer file1.Close()
fmt.Fprintln(file1, 1, 1.1, "Joylucky")
file2, _ := os.Create("test_2.txt")
defer file2.Close()
fmt.Fprintf(file2, "%d,%f,%s", 1, 1.1, "Joylucky")
}
◆ 파일에서 읽기
package main
import (
"fmt"
"os"
)
func main() {
var num1 int
var num2 float32
var s string
file1, _ := os.Open("test_1.txt")
defer file1.Close()
fmt.Fscanln(file1, &num1, &num2, &s)
fmt.Println(num1, num2, s)
file2, _ := os.Open("test_2.txt")
defer file2.Close()
fmt.Fscanf(file2, "%d,%f,%s", &num1, &num2, &s)
fmt.Println(num1, num2, s)
}
◆ ioutl 패키지 이용
▶ func WriteFile(filename string, data []byte, perm os.FileMode) error: 파일 쓰기. 에러 값을 리턴
▶ func ReadFile(filename string) ([]byte, error): 파일 읽기. 읽은 데이터(바이트 슬라이스)와 에러 값을 리턴
package main
import (
"fmt"
"io/ioutil"
"os"
)
func main() {
s := "Hello, world!"
err := ioutil.WriteFile("test.txt", []byte(s), os.FileMode(644))
// s를 []byte 바이트 슬라이스로 변환, s를 test.txt 파일에 저장
if err != nil {
fmt.Println(err)
return
}
data, err := ioutil.ReadFile("test.txt") // test.txt의 내용을 읽어서 바이트 슬라이스 리턴
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(data)) // 문자열로 변환하여 data의 내용 출력
}
'IT 초보코딩의 세계 > Go 언어' 카테고리의 다른 글
[Block Chain] Go언어의 AES 대칭키, RSA 공개키 알고리즘 2장 (2) | 2023.04.14 |
---|---|
[Block Chain] Go언어의 JSON, 암호화 1장 (0) | 2023.04.14 |
Go언어의 출력함수 IO, 문자열 처리 및 조작, 정규식 2장 (7) | 2023.04.11 |
Go언어의 출력함수 IO, FMT, 유니코드, 디코딩 1장 (6) | 2023.04.10 |
Go언어의 Package (6) | 2023.04.08 |
댓글