golang-os文件操作

2019-07-03 11:29:04 浏览数 (1)

golang-os文件操作

代码语言:javascript复制
package main

import (
    "fmt"
    "os"
)

//func main() {
//    f,err :=os.Create("/home/landv/testOne.txt")
//    if err != nil {
//        fmt.Println("create err:",err)
//        return
//    }
//    defer f.Close()
//    fmt.Println("successful")
//}
//func main() {
//    f,err :=os.Open("/home/landv/testOne.txt") //以只读方式打开
//    if err != nil {
//        fmt.Println("create err:",err)
//        return
//    }
//    defer f.Close()
//    _, err = f.WriteString("这是一个One测试文件#######")
//    if err != nil {
//        fmt.Println("WriteString err:",err)
//        return
//    }
//    fmt.Println("successful")
//}
func main() {
    f,err :=os.OpenFile("/home/landv/testOne.txt",os.O_RDWR,6)
    if err != nil {
        fmt.Println("create err:",err)
        return
    }else {

        content :="这是要追加的内容n"
        n,_ :=f.Seek(0,2)
        _,err =f.WriteAt([]byte(content),n)
    }
    defer f.Close()


    //_, err = f.WriteString("这是一个One测试文件#######")
    //
    //if err != nil {
    //    fmt.Println("WriteString err:",err)
    //    return
    //}

    fmt.Println("successful")
}

 添加O_APPEND就可以追加内容了

代码语言:javascript复制
f, err := os.OpenFile(fileName, os.O_WRONLY|os.O_APPEND, 0666)
代码语言:javascript复制
n,_ :=f.Seek(io.SeekStart,io.SeekEnd)
//使用常量好理解,当然你可以直接写(0,2)

文件读操作

代码语言:javascript复制
package main

import (
    "bufio"
    "fmt"
    "io"
    "os"
)

func main() {
    //_,err :=os.Create("D:/gotest/aaa.txt")
    f,err :=os.OpenFile("D:/gotest/aaa.txt",os.O_RDWR,6)
    if err   != nil{
        fmt.Println("OpenFile err:",err)
        return
    }
    defer f.Close()
    fmt.Println("Suceessful")
    //_, _ = f.WriteString("############n")

    reader  := bufio.NewReader(f)

    for {
        buf, err := reader.ReadBytes('n')
        if err != nil && err==io.EOF{
            fmt.Println("文件读取完毕")
            return
        }else if err != nil {
            fmt.Println("err:", err)
        }
        fmt.Println(string(buf))
    }
}

0 人点赞