1. 程式人生 > >golang:IO File 操作

golang:IO File 操作

指定 err als 目錄 close 指針 dir ron 數據

1,創建文件

/*createFile 創建文件 | 參數說明:dir 路徑,fileName 文件名 */
func createFile(dir, fileName string) (*os.File, error) {
	var err error
	//目錄不存在則創建
	if _, err = os.Stat(dir); err != nil {
		if err = os.MkdirAll(dir, 0777); err != nil { //這裏如果是0711權限 可能會導致其它線程,讀取文件夾內內容出錯
			return nil, err
		}
	}
	//創建文件
	var newFile *os.File
	if newFile, err = os.Create(dir + "/" + fileName); err != nil {
		return nil, err
	}
	//創建成功,返回文件指針
	return newFile, nil
}

  2,寫入文件

/*writeFile 寫入文件 | 參數說明:path 文件路徑 ,content 寫入內容*/
func writeFile(path string, content string) error {
	//打開文件 | 如果文件不存在,這裏會自動創建文件
	f, err := os.OpenFile(path, os.O_RDWR|os.O_APPEND|os.O_CREATE, 0666)
	if err != nil {
		return err
	}
	io.WriteString(f, content) //寫入文件
	f.Close()                  //關閉文件
	return nil
}

  3,讀取文件

/*readFile 讀取文件 | 參數說明:path 文件路徑*/
func readFile(path string) []string {
	//打開文件
	f, _ := os.Open(path)
	br := bufio.NewReader(f)
	var lines []string
	for {
		a, _, c := br.ReadLine()
		if c == io.EOF {
			break
		}
		lines = append(lines, string(a)) //string(a)為一行數據
	}
	//關閉文件
	f.Close()
	return lines
}

  4,刪除文件

os.Remove(path)

  5,判斷文件是否存在

//判斷文件是否存在  存在返回 true ,不存在返回  false
func isExist(path string) bool {
	_, err := os.Stat(path)
	return err == nil || os.IsExist(err)
}

  6,讀取文件大小

/*fileSize 讀取指定路徑的文件尺寸  返回文件大小 | 參數說明:path 文件路徑  */
func fileSize(path string) int64 {
	f, e := os.Stat(path)
	if e != nil {
		fmt.Println(e.Error())
		return 0
	}
	return f.Size()
}

  7,文件重命名

os.Rename(path, newpath)

  8,文件最後修改時間

/*fileModifyTime 文件最後修改時間 */
func fileModifyTime(path string) time.Time {
	var t time.Time
	fileInfo, err := os.Stat(path)
	if err == nil || os.IsExist(err) {
		t = fileInfo.ModTime()
	}
	return t
}

  

golang:IO File 操作