Golang 文件操作:判断存在、覆盖与创建

在 Golang 中,我们可以使用 os 包提供的函数来实现对文件的判断、覆盖和创建操作。以下是一段示例代码,演示如何判断文件是否存在,如果存在则覆盖之前内容,不存在则创建文件:

package main

import (
	'fmt'
	'os'
)

func main() {
	filename := 'test.txt'
	content := 'Hello, world!'

	// 判断文件是否存在
	if _, err := os.Stat(filename); os.IsNotExist(err) {
		// 文件不存在,创建文件并写入内容
		file, err := os.Create(filename)
		if err != nil {
			fmt.Println('Failed to create file:', err)
			return
		}
		defer file.Close()

		_, err = file.WriteString(content)
		if err != nil {
			fmt.Println('Failed to write content:', err)
			return
		}

		fmt.Println('File created and content written.')
	} else {
		// 文件存在,覆盖文件内容
		file, err := os.OpenFile(filename, os.O_WRONLY|os.O_TRUNC, 0666)
		if err != nil {
			fmt.Println('Failed to open file:', err)
			return
		}
		defer file.Close()

		_, err = file.WriteString(content)
		if err != nil {
			fmt.Println('Failed to write content:', err)
			return
		}

		fmt.Println('File overwritten with new content.')
	}
}

代码解读:

  1. 判断文件是否存在: 使用 os.Stat(filename) 获取文件信息,如果返回的错误类型为 os.IsNotExist,则说明文件不存在。
  2. 创建文件: 使用 os.Create(filename) 创建文件。如果文件已存在,os.Create 会清空文件内容。
  3. 写入内容: 使用 file.WriteString(content) 将字符串写入文件。
  4. 覆盖文件: 使用 os.OpenFile(filename, os.O_WRONLY|os.O_TRUNC, 0666) 打开文件。os.O_WRONLY 表示以只写模式打开,os.O_TRUNC 表示清空文件内容。

执行结果:

第一次执行代码,会创建文件并写入内容:

File created and content written.

再次执行代码,会覆盖文件内容:

File overwritten with new content.
Golang 文件操作: 判断存在、覆盖与创建

原文地址: https://www.cveoy.top/t/topic/jkmv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录