>  기사  >  백엔드 개발  >  golang에서 파일을 닫는 방법

golang에서 파일을 닫는 방법

青灯夜游
青灯夜游원래의
2022-12-19 11:16:504711검색

golang에서는 Close() 함수를 사용하여 파일을 닫을 수 있습니다. Close() 함수는 열린 파일을 닫는 데 사용됩니다. 구문은 "func (file *File) Close() error"입니다. 매개변수 "file"은 열기에 실패하면 오류 메시지가 반환됩니다. 그렇지 않으면 nil이 반환됩니다.

golang에서 파일을 닫는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.

Golang에서는 파일 작업이 필요하므로 먼저 파일을 열어야 합니다. 파일 열기 작업이 완료된 후 파일을 닫기만 하면 파일을 닫아야 합니다. 시스템 자원 낭비를 초래하게 됩니다.

Golang에서는 Open 함수는 파일을 여는 데 사용되고, Close 함수는 파일을 닫는 데 사용되며, 대부분의 파일 작업에는 매우 중요한 os.File 구조가 포함됩니다.

Go 언어 os.File 구조

문법

type File struct {
*file // os specific
}
type file struct {
pfd        poll.FD
name       string
dirinfo    *dirInfo // nil unless directory being read
appendMode bool     // whether file is opened for appending
}

설명

os.File 구조에는 파일 포인터가 포함되어 있으며 각각 4개의 파일 포인터 구조가 있습니다.

멤버 변수 설명
pfd 은 파일의 유일한 식별자인 FD 구조 유형입니다. 열린 각 파일은 운영 체제에 있으며 파일이 있습니다. 파일을 고유하게 식별하는 식별자(여기서 pfd)입니다.
name 파일 이름.
dirinfo 파일의 경로 정보도 구조입니다.
appendMode 은 파일을 콘텐츠에 추가할 수 있는지 여부를 나타내는 bool 유형입니다.

Go 언어 닫기 기능 - 파일 닫기

Syntax

func (file *File) Close() error

Parameters

  • 파일: 파일 열기.

반환 값

  • error: 종료에 실패하면 오류 메시지가 반환되고, 그렇지 않으면 nil이 반환됩니다.

설명

파일 포인터를 사용하여 닫기 기능을 호출하세요. 닫기에 실패하면 오류 메시지가 반환됩니다.

Case

파일 열기 및 닫기

Open 함수를 사용하여 파일을 열고 Close 함수를 사용하여 파일을 닫습니다

package main
import (
	"fmt"
	"os"
)
func main() {
	fileName := "C:/haicoder.txt"
	file, err := os.Open(fileName)
	if err != nil{
		fmt.Println("Open file err =", err)
		return
	}
	fmt.Println("Open file success")
	if err := file.Close(); err != nil{
		fmt.Println("Close file err =", err)
		return
	}
	fmt.Println("Close file success")
}

golang에서 파일을 닫는 방법

os.Open을 사용하여 "C:/ hacoder.txt" 파일이 존재하기 때문에 파일 열기 및 닫기에 성공합니다. os.Open을 호출하여 반환된 파일 포인터를 사용하여 파일을 닫습니다.

다음으로 "C:/haicoder.txt" 파일을 삭제하고 프로그램을 다시 실행합니다. 프로그램 출력은 다음과 같습니다.

golang에서 파일을 닫는 방법

파일을 삭제한 후 파일을 다시 열면, 파일이 존재하지 않기 때문에 프로그램에서 오류를 보고합니다.

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 비디오를 방문하세요! !

위 내용은 golang에서 파일을 닫는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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