Golang文件不存在就创建并追加方式写入文件
在日常开发中,经常会遇到需要写入文件的场景。在Golang中,我们可以使用os包来操作文件。在本文中,我们将详细介绍如何在Golang中判断文件是否存在,如果不存在就创建文件并以追加方式写入内容。
判断文件是否存在
在Golang中,我们可以使用os包中的Stat
函数来判断文件是否存在。以下是一个判断文件是否存在的示例代码:
package main
import (
"fmt"
"os"
)
func fileExist(filename string) bool {
_, err := os.Stat(filename)
if os.IsNotExist(err) {
return false
}
return true
}
func main() {
filename := "example.txt"
if fileExist(filename) {
fmt.Printf("File %s exists\n", filename)
} else {
fmt.Printf("File %s does not exist\n", filename)
}
}
当我们运行上述代码时,将会输出相应的结果,如果文件存在,则输出File example.txt exists
,如果文件不存在,则输出File example.txt does not exist
。
创建文件并追加写入内容
如果我们需要向一个不存在的文件追加写入内容,首先需要使用os包中的OpenFile
函数来创建文件并打开。然后通过File
的WriteString
方法将内容写入文件。以下是一个示例代码:
package main
import (
"fmt"
"os"
)
func appendToFile(filename string, content string) error {
file, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
return err
}
defer file.Close()
_, err = file.WriteString(content)
if err != nil {
return err
}
return nil
}
func main() {
filename := "example.txt"
content := "Hello, world!"
err := appendToFile(filename, content)
if err != nil {
fmt.Printf("Failed to append to file: %v\n", err)
} else {
fmt.Printf("Content appended to file successfully\n")
}
}
以上代码中,os.OpenFile
函数用于创建文件并打开,其中os.O_APPEND|os.O_CREATE|os.O_WRONLY
参数表示以追加、创建和写入方式打开文件。然后使用file.WriteString
方法将内容写入文件。
当我们运行上述代码时,如果文件不存在,则会创建文件并追加写入内容,输出Content appended to file successfully
,并且文件example.txt
中会包含Hello, world!
文本内容。
总结
通过以上示例代码,我们详细介绍了在Golang中判断文件是否存在并创建文件以追加方式写入内容的方法。在实际应用中,可根据具体需求对代码进行调整和扩展,以满足不同的需求。