在 Go 语言中,可以使用标准库中的 os 和 io 包来对文件进行操作。下面是一些常见的文件操作示例代码:
1.创建文件并写入数据
package main
import (
"fmt"
"os"
)
func main() {
// 创建文件
f, err := os.Create("test.txt")
if err != nil {
panic(err)
}
defer f.Close()
// 写入数据
data := []byte("hello world")
n, err := f.Write(data)
if err != nil {
panic(err)
}
fmt.Printf("wrote %d bytes\n", n)
}
2.读取文件内容
package main
import (
"fmt"
"io/ioutil"
)
func main() {
// 读取文件
data, err := ioutil.ReadFile("test.txt")
if err != nil {
panic(err)
}
fmt.Printf("read %d bytes: %s\n", len(data), string(data))
}
3.追加数据到文件末尾
package main
import (
"fmt"
"os"
)
func main() {
// 打开文件,如果文件不存在则创建
f, err := os.OpenFile("test.txt", os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0644)
if err != nil {
panic(err)
}
defer f.Close()
// 追加数据
data := []byte(" from go")
n, err := f.Write(data)
if err != nil {
panic(err)
}
fmt.Printf("appended %d bytes\n", n)
}
4.删除文件
package main
import (
"fmt"
"os"
)
func main() {
// 删除文件
err := os.Remove("test.txt")
if err != nil {
panic(err)
}
fmt.Println("file deleted")
}
5.重命名文件
package main
import (
"fmt"
"os"
)
func main() {
// 重命名文件
err := os.Rename("test.txt", "new.txt")
if err != nil {
panic(err)
}
fmt.Println("file renamed")
}
6.判断文件是否存在
package main
import (
"fmt"
"os"
)
func main() {
// 判断文件是否存在
_, err := os.Stat("test.txt")
if os.IsNotExist(err) {
fmt.Println("file not exists")
} else {
fmt.Println("file exists")
}
}
需要注意的是,在进行文件操作时,需要确保程序对文件具有足够的权限,否则可能会导致错误的结果。此外,在使用 os 包进行文件操作时,需要注意及时关闭文件句柄以释放系统资源。