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

    写程序离不了文件操作,这里总结下go语言文件操作。

    一、建立与打开

    建立文件函数:

    func Create(name string) (file *File, err Error)

    func NewFile(fd int, name string) *File

    具体见官网:http://golang.org/pkg/os/#Create

     

    打开文件函数:

    func Open(name string) (file *File, err Error)

    func OpenFile(name string, flag int, perm uint32) (file *File, err Error)

    具体见官网:http://golang.org/pkg/os/#Open

     

    二、写文件

    写文件函数:

    func (file *File) Write(b []byte) (n int, err Error)

    func (file *File) WriteAt(b []byte, off int64) (n int, err Error)

    func (file *File) WriteString(s string) (ret int, err Error)

    具体见官网:http://golang.org/pkg/os/#File.Write 

    写文件示例代码:

    package main
    import (
            "os"
            "fmt"
    )
    func main() {
            userFile := "test.txt"
            fout,err := os.Create(userFile)
            defer fout.Close()
            if err != nil {
                    fmt.Println(userFile,err)
                    return
            }
            for i:= 0;i<10;i++ {
                    fout.WriteString("Just a test!\r\n")
                    fout.Write([]byte("Just a test!\r\n"))
            }
    }
    
    

    三、读文件

    读文件函数:

    func (file *File) Read(b []byte) (n int, err Error)

    func (file *File) ReadAt(b []byte, off int64) (n int, err Error)

    具体见官网:http://golang.org/pkg/os/#File.Read

    读文件示例代码:

    package main
    import (
            "os"
            "fmt"
    )
    func main() {
            userFile := "test.txt"
            fin,err := os.Open(userFile)
            defer fin.Close()
            if err != nil {
                    fmt.Println(userFile,err)
                    return
            }
            buf := make([]byte, 1024)
            for{
                    n, _ := fin.Read(buf)
                    if 0 == n { break }
                    os.Stdout.Write(buf[:n])
            }
    }
    
    

    四、删除文件

    函数:

    func Remove(name string) Error

    具体见官网:http://golang.org/pkg/os/#Remove

  • E-Mail : Mike_Zhang@live.com
  • 转载请注明出处,谢谢!
查看全文
  • 相关阅读:
    【bzoj4276】[ONTAK2015]Bajtman i Okrągły Robin 线段树优化建图+费用流
    【bzoj4383】[POI2015]Pustynia 线段树优化建图+差分约束系统+拓扑排序
    【bzoj4519】[Cqoi2016]不同的最小割 分治+最小割
    【bzoj2229】[Zjoi2011]最小割 分治+网络流最小割
    【bzoj3689】异或之 可持久化Trie树+堆
    【bzoj1109】[POI2007]堆积木Klo 动态规划+树状数组
    【bzoj2780】[Spoj]8093 Sevenk Love Oimaster 广义后缀自动机
    【bzoj4804】欧拉心算 欧拉函数
    【bzoj3231】[Sdoi2008]递归数列 矩阵乘法+快速幂
    【bzoj3589】动态树 树链剖分+线段树
  • 原文地址:https://www.cnblogs.com/MikeZhang/p/fileOperationsGolang.html
  • Copyright © 2011-2022 走看看