Files
bulma/file_demo2.go
T

44 lines
888 B
Go

package main
import (
"errors"
"fmt"
"io"
"os"
)
func fileOperation() error {
// 1. 打开文件错误处理
file, err := os.OpenFile("file/data.log", os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0644)
if err != nil {
// 包装错误,添加上下文
return fmt.Errorf("打开文件失败: %w", err)
}
defer func() {
if closeErr := file.Close(); closeErr != nil {
fmt.Printf("警告:文件关闭异常: %v\n", closeErr)
}
}()
// 2. 写入数据错误处理
content := []byte("Go文件操作最佳实践")
n, err := io.WriteString(file, string(content))
if err != nil {
return fmt.Errorf("文件写入失败: %w", err)
}
if n != len(content) {
return errors.New("文件写入不完整")
}
return nil
}
func main() {
if err := fileOperation(); err != nil {
fmt.Printf("文件操作执行失败: %v\n", err)
return
}
fmt.Println("文件操作成功")
}