zoukankan      html  css  js  c++  java
  • 文件操作

    使用Fprintln追加字符串到文件末尾

    package main
    
    import (
        "fmt"
        "os"
    )
    
    func main() {
        f,err := os.Create("test.txt")
        defer f.Close()
        if err != nil{
            return
        }
        if err!=nil{
            fmt.Println(err)
        }
        fmt.Fprintln(f,"sss")
    
    }

    分区读取的正确操作

    package main
    
    import (
        "bufio"
        "fmt"
        "io"
        "log"
        "os"
    )
    
    func main() {
        f, err := os.Open("test.go")
        if err != nil {
            log.Fatal(err)
        }
        r := bufio.NewReader(f)
        b := make([]byte, 256)
        for {
            n, err := r.Read(b) //返回该次读取的字符个数
            if n == 0 && err == io.EOF {
                break
            }else if err != nil{
                break
            }
    
            fmt.Print(string(b[:n]))
        }
    }
    package main
    
    import (
        "io"
        "os"
    )
    
    func main() {
        f, _ := os.OpenFile("./test/1.txt", os.O_WRONLY, 0644) //以读写方式打开文件
        off,_ := f.Seek(5,io.SeekCurrent) //io.SeekCuurent从当前位置偏移5个,返回值off表示相对于文件起始位置的偏移量 ios.SeekStart起始位置,io.SeekEnd//结束位置
        f.WriteString("helloworld11111111")
        f.WriteAt([]byte("nihao"), 10) 表示写到相对初始位置偏移量为10的位置
        defer f.Close()
    }
    

    文件内容的拷贝,记住读多少写多少

    package main
    
    import (
        "fmt"
        "io"
        "os"
    )
    
    func test(s []int) {
        fmt.Printf("%p", &s)
    }
    
    func main() {
        fr, err := os.OpenFile("/Users/xiahualou/onedrive/GoDevelopment/src/logAgent/test/1.txt", os.O_RDONLY, 0644)
        if err != nil {
            fmt.Println("open err", err)
            return
        }
        defer fr.Close()
        fw, err := os.Create("/Users/xiahualou/onedrive/GoDevelopment/src/logAgent/test/2.txt")
        if err != nil {
            fmt.Println("create err", err)
            return
        }
        defer fw.Close()
        buf := make([]byte, 4096)
        for {
            n, err := fr.Read(buf)
            if err != nil && err == io.EOF {
                fmt.Println("已经读完")
                return
            }
            fw.Write(buf[:n]) //读多少写多少,如果直接写入,如果不是刚刚好读完4096,会把很多默认值写进去
        }
    }

    操作目录

    package main
    
    import (
        "fmt"
        "os"
    )
    
    func test(s []int) {
        fmt.Printf("%p", &s)
    }
    
    func main() {
        fr, err := os.OpenFile("/Users/xiahualou/onedrive/GoDevelopment/src/logAgent/test", os.O_RDONLY, 0644)
        if err != nil {
            fmt.Println("open err", err)
            return
        }
        defer fr.Close()
        info, err := fr.Readdir(-1) //-1获取所有文件名
        for _, fileInfo := range info {
            if fileInfo.IsDir() {
                fmt.Printf("%s is dir
    ", fileInfo.Name())
            } else {
                fmt.Printf("%s
    ", fileInfo.Name())
            }
        }
    }




  • 相关阅读:
    考试中一元三次方程的解法
    变限积分求导公式--加上自己理解
    柯西中值定理
    sec x的积分及注意事项
    线性代数
    IntelliJ IDEA无法新建类解决办法
    idea中Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.
    Windows 64位下安装Redis 以及 可视化工具Redis Desktop Manager的安装和使用
    使用@Param注解
    关于在方法里面使用泛型public static <T> T
  • 原文地址:https://www.cnblogs.com/hualou/p/12069789.html
Copyright © 2011-2022 走看看