不以物喜,不以己悲

Go文件操作

Go文件操作

go对于文件的操作提供了多个包进行支持,目前学习了这部分,故对该包的使用记录一下。

package main

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

func main(){
	fi, err := os.Open("main.go")
	if err != nil{
		fmt.Println(err)
		return
	}
	wi, err := os.Create("wo.go")
	if err != nil{
		fmt.Println(err)
		return
	}
	data := make([]byte, 100)
	for {
		n, err := fi.Read(data)
		if err != nil{
			if err == io.EOF{
				break//已经读取完了
			}else{
				fmt.Println(err)
			}
		}
		w, err := wi.Write(data[0:n])
		if err != nil{
			fmt.Println(err)//出错了
			return
		}
		if w != n{
			fmt.Println("也是有错误的!")
			return
		}
		fmt.Print(string(data[0:n]))

	}
}

获取文件的属性

package main

import (
	"fmt"
	"os"
)

func main(){
	fileInfo, err := os.Stat("main.go")
	if err != nil{
		fmt.Println(err)
	}
	fmt.Print(fileInfo)
}

其中FileInfo的结构如下:

type FileInfo interface {
	Name() string       // base name of the file 文件名
	Size() int64        // length in bytes for regular files; system-dependent for others
	Mode() FileMode     // file mode bits
	ModTime() time.Time // modification time
	IsDir() bool        // abbreviation for Mode().IsDir()
	Sys() interface{}   // underlying data source (can return nil)
}
posted @ 2018-10-29 22:56  这种人  阅读(214)  评论(0编辑  收藏  举报