zoukankan      html  css  js  c++  java
  • Golang进阶实战之IO操作

    文件读写

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    func () {

    fileInfo, err := os.Stat("aaa.txt")
    if err != nil {
    fmt.Println("error")
    return
    }
    fmt.Println(fileInfo)
    fmt.Println(fileInfo.Name())
    fmt.Println(fileInfo.Size())
    fmt.Println(fileInfo.IsDir())
    // 文件权限
    fmt.Println(fileInfo.Mode())
    fmt.Println(fileInfo.ModTime())

    // 路径
    fileName1 := "aaa.txt"
    fmt.Println(filepath.Abs(fileName1))
    fmt.Println(filepath.IsAbs(fileName1))

    // 创建目录
    err = os.MkdirAll("aa", os.ModePerm)
    if err != nil {
    fmt.Println("error")
    return
    }
    // 创建Create 打开Open OpenFile 关闭Close 删除Remove RemoveAll
    file, err2 := os.Create("fileName2.txt")
    if err2 != nil {
    fmt.Println("error")
    return
    }
    fmt.Println(file)
    }

    数据读写

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    大专栏  Golang进阶实战之IO操作"code">
    func () {
    // io
    // 读取数据: Read
    file, err := os.Open("aaa.txt")
    if err != nil {
    return
    }
    defer file.Close()

    bs := make([]byte, 4, 4)
    //n, err := file.Read(bs)
    //println(err)
    //println(n)
    //println(string(bs))
    //
    //n, err = file.Read(bs)
    //println(err)
    //println(n)
    //println(string(bs))
    //
    //n, err = file.Read(bs)
    //println(err)
    //println(n)
    //println(string(bs))

    n := -1
    for {
    n, err = file.Read(bs)
    if n == 0 || err == io.EOF {
    break
    }
    fmt.Println(string(bs[:n]))
    }

    // 写入数据: Write
    file2, err2 := os.OpenFile("bbb.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, os.ModePerm)
    if err2 != nil {
    return
    }
    defer file2.Close()
    bs2 := []byte{44,55,66}
    n2, err4 := file2.Write(bs2)
    if err4 != nil {
    return
    }
    fmt.Println(n2)
    }

    io相关

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    func () {
    // copy
    // 可以用Read和Write利用切片实现复制文件
    // io.Copy()
    // ioutil.ReadFile() ioutil.WriteFile()

    // Seek接口设置读写文件偏移量

    // 断点续传 ;利用临时文件记录传输了多少数据

    // bufio 添加缓冲区 提高io效率
    // buifo.NewReader(file)
    // Flush() 刷新缓冲区

    }
  • 相关阅读:
    win2008R2、win7不停闪屏、程序失去响应的解决办法
    “我要上春晚”刷票器
    Windows Phone 7的About模板——Your Last About Dialog
    该伙伴事务管理器已经禁止了它对远程/网络事务的支持
    安装配置apache+php+mysql小结
    [摘]CSS的优先级探讨
    利用domdrag实现flash滚动条功能
    WIN7下如何做好IE6,7的兼容性测试
    同级情况下CSS的优先级探讨
    [NHibernate] NHibernate对象关系映射工具了解
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12433448.html
Copyright © 2011-2022 走看看