在Go语言中,文件读写操作主要通过os
和io/ioutil
包来实现。下面是一些常用的文件读写方法:
- 读取文件:
- 使用
os.Open()
函数打开文件,返回一个*File
类型的文件对象和一个错误。
file, err := os.Open("filename.txt") if err != nil { log.Fatal(err) } defer file.Close()
- 使用
ioutil.ReadFile()
函数读取文件内容,返回一个字节切片和一个错误。
content, err := ioutil.ReadFile("filename.txt") if err != nil { log.Fatal(err) } fmt.Println(string(content))
- 使用
bufio.NewReader()
函数创建一个缓冲读取器,然后使用ReadString()
或ReadLine()
方法逐行读取文件内容。
file, err := os.Open("filename.txt") if err != nil { log.Fatal(err) } defer file.Close() reader := bufio.NewReader(file) for { line, err := reader.ReadString('\n') if err != nil { break } fmt.Print(line) }
- 写入文件:
- 使用
os.Create()
函数创建一个新文件或打开一个已存在的文件,返回一个*File
类型的文件对象和一个错误。
file, err := os.Create("filename.txt") if err != nil { log.Fatal(err) } defer file.Close()
- 使用
ioutil.WriteFile()
函数将字节切片写入文件,返回一个错误。
content := []byte("Hello, World!") err := ioutil.WriteFile("filename.txt", content, 0644) if err != nil { log.Fatal(err) }
- 使用
bufio.NewWriter()
函数创建一个缓冲写入器,然后使用WriteString()
或Flush()
方法将内容写入文件。
file, err := os.Create("filename.txt") if err != nil { log.Fatal(err) } defer file.Close() writer := bufio.NewWriter(file) _, err = writer.WriteString("Hello, World!\n") if err != nil { log.Fatal(err) } err = writer.Flush() if err != nil { log.Fatal(err) }
这些方法可以满足大部分文件读写操作的需求。在实际编程中,你可能需要根据具体需求选择合适的方法。