前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >golang-os文件操作

golang-os文件操作

作者头像
landv
发布2019-07-03 11:29:04
5950
发布2019-07-03 11:29:04
举报
文章被收录于专栏:landvlandv

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))
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档