Go语言自学系列 | golang标准库os模块 - File文件读操作
Posted COCOgsta
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言自学系列 | golang标准库os模块 - File文件读操作相关的知识,希望对你有一定的参考价值。
视频来源:B站《golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]》
一边学习一边整理老师的课程内容及试验笔记,并与大家分享,请移步至知乎网站,谢谢支持!
附上汇总贴:Go语言自学系列 | 汇总 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/484035621
这里结束和File结构体相关的文件读操作
package main
import (
"fmt"
"os"
)
// 打开关闭文件
func openCloseFile()
// 只能读
f, _ := os.Open("a.txt")
fmt.Printf("f.Name(): %v\\n", f.Name())
// 根据第二个参数 可以读写或者创建
f2, _ := os.OpenFile("a1.txt", os.O_RDWR|os.O_CREATE, 0755)
fmt.Printf("f2.Name(): %v\\n", f2.Name())
err := f.Close()
fmt.Printf("err: %v\\n", err)
err2 := f2.Close()
fmt.Printf("err2: %v\\n", err2)
// 创建文件
func createFile()
// 等价于:OpenFile(name, O_RDWF|O_CREATE|O_TRUNK, 0666)
f, _ := os.Create("a2.txt")
fmt.Printf("f.Name(): %v\\n", f.Name())
// 第一个参数 目录默认:Temp 第二个参数 文件名前缀
f2, _ := os.CreateTemp("", "temp")
fmt.Printf("f2.Name(): %v\\n", f2.Name())
// 读操作
func readOps()
// 循环读取
/* f, _ := os.Open("a.txt")
for
buf := make([]byte, 6)
n, err := f.Read(buf)
fmt.Printf("string(buf): %v\\n", string(buf))
fmt.Printf("n: %v\\n", n)
if err == io.EOF
break
f.Close() */
/* buf := make([]byte, 10)
f2, _ := os.Open("a.txt")
// 从5开始读10个字节
n, _ := f2.ReadAt(buf, 5)
fmt.Printf("n: %v\\n", n)
fmt.Printf("string(buf): %v\\n", string(buf))
f2.Close() */
// 测试 a目录下有b和c目录
/* f, _ := os.Open("a")
de, _ := f.ReadDir(-1)
for _, v := range de
fmt.Printf("v.IsDir(): %v\\n", v.IsDir())
fmt.Printf("v.Name(): %v\\n", v.Name())
*/
// 定位
f, _ := os.Open("a.txt")
f.Seek(3, 0)
buf := make([]byte, 10)
n, _ := f.Read(buf)
fmt.Printf("n: %v\\n", n)
fmt.Printf("string(buf): %v\\n", string(buf))
f.Close()
func main()
// openCloseFile()
// createFile()
readOps()
以上是关于Go语言自学系列 | golang标准库os模块 - File文件读操作的主要内容,如果未能解决你的问题,请参考以下文章
Go语言自学系列 | golang标准库os模块 - File文件写操作