📅  最后修改于: 2023-12-03 15:31:02.218000             🧑  作者: Mango
在Golang中要读写文件,需要使用标准库中的os
和ioutil
包。os
包提供了File和FileInfo类型,而ioutil
包提供了一组针对文件读写的常用函数。
读取文件有两种方式,一种是使用ioutil.ReadFile
函数,另一种是使用os.Open
和bufio.Scanner
。
ioutil.ReadFile
函数可以方便地读取整个文件的内容,返回一个字节数组。
package main
import (
"fmt"
"io/ioutil"
)
func main() {
data, err := ioutil.ReadFile("test.txt")
if err != nil {
fmt.Println("读取文件失败:", err)
return
}
fmt.Println(string(data))
}
另一种方式是使用os.Open
打开文件,然后使用bufio.Scanner
扫描文件中的内容。
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
file, err := os.Open("test.txt")
if err != nil {
fmt.Println("打开文件失败:", err)
return
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil {
fmt.Println("扫描文件失败:", err)
}
}
写入文件同样有两种方式,一种是使用ioutil.WriteFile
函数,另一种是使用os.Create
和bufio.Writer
。
ioutil.WriteFile
函数可以方便地将字节数组写入到文件中。
package main
import (
"fmt"
"io/ioutil"
)
func main() {
data := []byte("Hello, World!")
if err := ioutil.WriteFile("test.txt", data, 0644); err != nil {
fmt.Println("写入文件失败:", err)
}
}
另一种方式是使用os.Create
创建文件,然后使用bufio.Writer
将内容写入到文件中。
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
file, err := os.Create("test.txt")
if err != nil {
fmt.Println("创建文件失败:", err)
return
}
defer file.Close()
writer := bufio.NewWriter(file)
if _, err := writer.WriteString("Hello, World!\n"); err != nil {
fmt.Println("写入文件失败:", err)
}
writer.Flush()
}
以上介绍了在Golang中如何读写文件,我们可以根据需要选择不同的方式进行操作。使用ioutil
函数可以方便地进行文件读写,而os
和bufio
包则提供了更加灵活的操作方式。