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("文件操作成功") }