golang标准库os模块-File文件读操作

golang标准库os模块-File文件读操作

本文视频教程:https://www.bilibili.com/video/BV1zR4y1t7Wj?from=search&seid=7990946135293155340&spm_id_from=333.337.0.0

关注公众号,获得课程资料和源码

file

这里结束和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_RDWR|O_CREATE|O_TRUNC, 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.Println(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()
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多课网_老郭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值