在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)
}
這些方法可以滿足大部分文件讀寫操作的需求。在實際編程中,你可能需要根據具體需求選擇合適的方法。