在Go语言中,可以使用 os
和 io/ioutil
包来进行文件操作。以下是一些常用的文件操作方法:
- 创建文件:
file, err := os.Create("filename.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close()
- 打开文件:
file, err := os.Open("filename.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close()
- 写入文件:
file, err := os.OpenFile("filename.txt", os.O_WRONLY|os.O_CREATE, 0644)
if err != nil {
log.Fatal(err)
}
defer file.Close()
data := []byte("Hello, World!")
_, err = file.Write(data)
if err != nil {
log.Fatal(err)
}
- 读取文件:
file, err := os.Open("filename.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close()
data := make([]byte, 1024)
count, err := file.Read(data)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(data[:count]))
- 删除文件:
err := os.Remove("filename.txt")
if err != nil {
log.Fatal(err)
}
- 重命名文件:
err := os.Rename("oldname.txt", "newname.txt")
if err != nil {
log.Fatal(err)
}
- 复制文件:
sourceFile, err := os.Open("source.txt")
if err != nil {
log.Fatal(err)
}
defer sourceFile.Close()
destinationFile, err := os.Create("destination.txt")
if err != nil {
log.Fatal(err)
}
defer destinationFile.Close()
_, err = io.Copy(destinationFile, sourceFile)
if err != nil {
log.Fatal(err)
}
- 获取文件信息
fileInfo, err := os.Stat("filename.txt")
if err != nil {
log.Fatal(err)
}
fmt.Println("文件名称:", fileInfo.Name())
fmt.Println("文件大小:", fileInfo.Size())
fmt.Println("是否为目录:", fileInfo.IsDir())
fmt.Println("修改时间:", fileInfo.ModTime())
这些只是文件操作的一些基本方法,还有其他更复杂的操作。你可以查阅Go语言的官方文档来了解更多详细的文件操作方法和函数。