Golang 文件操作: 判断存在、覆盖与创建
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.')
}
}
代码解读:
- 判断文件是否存在: 使用
os.Stat(filename)获取文件信息,如果返回的错误类型为os.IsNotExist,则说明文件不存在。 - 创建文件: 使用
os.Create(filename)创建文件。如果文件已存在,os.Create会清空文件内容。 - 写入内容: 使用
file.WriteString(content)将字符串写入文件。 - 覆盖文件: 使用
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.
原文地址: https://www.cveoy.top/t/topic/jkmv 著作权归作者所有。请勿转载和采集!