본문 바로가기
Golang

Golang 임시 파일 생성(os.CreateTemp)

by 시바도지 2023. 3. 27.
반응형

os.CreateTemp() 함수는 임시 파일을 생성하는 함수이다.

함수를 호출하면 임시 파일이 생성되고, 그 파일을 열 수 있는 파일 핸들과 파일 이름을 반환한다.

파일 핸들을 사용하여 파일에 쓰거나 파일에서 읽을 수 있다.

일반적으로 임시 파일은 프로그램이 실행되는 동안 사용되며, 더 이상 필요하지 않을 때 제거된다.

 

함수 원형은 다음과 같다.

func CreateTemp(dir, prefix string) (*os.File, error)

 

인자로는 다음과 같은 값이 전달된다.

  • dir: 임시 파일이 생성될 디렉토리 경로이다.
  • 이 값이 빈 문자열이면 기본값으로 /tmp가 사용된다.
  • prefix: 임시 파일 이름의 접두어다.
  • 이 값이 빈 문자열이면 기본값으로 "tmp"가 사용된다.

 

예제

package main

import (
	"fmt"
	"io/ioutil"
	"os"
)

func main() {
	// 임시 파일 생성
	tmpFile, err := os.CreateTemp("", "example")
	if err != nil {
		panic(err)
	}
	defer os.Remove(tmpFile.Name()) // 프로그램 종료 시 파일 삭제

	// 임시 파일에 데이터 쓰기
	data := []byte("hello, world!\\n")
	if _, err := tmpFile.Write(data); err != nil {
		panic(err)
	}

	// 임시 파일에서 데이터 읽기
	if _, err := tmpFile.Seek(0, 0); err != nil {
		panic(err)
	}
	b, err := ioutil.ReadAll(tmpFile)
	if err != nil {
		panic(err)
	}
	fmt.Printf("%s", b)
}

예제에서는 os.CreateTemp() 함수를 사용하여 "example"이라는 접두어를 갖는 임시 파일을 생성하고,

그 파일에 "hello, world!\n" 문자열을 쓴 다음 파일을 읽어들여 표준 출력에 출력한다.

프로그램이 종료될 때 임시 파일은 자동으로 삭제된다.

반응형

'Golang' 카테고리의 다른 글

Golang 슬라이스 정렬(오름차순, 내림차순)  (0) 2023.04.10
Golang UUID 생성  (0) 2023.03.27
Golang CSV를 JSON 변환  (0) 2023.03.15
Golang JSON을 CSV로 변환  (0) 2023.03.15
Golang 디렉토리 생성(os.Mkdir, os.MkdirAll)  (0) 2023.03.15

댓글