• golang:IO File 操作


    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
    }
    

      

  • 相关阅读:
    Java:前程似锦的 NIO 2.0
    优秀的程序员都热爱写作
    Java -- JDBC 学习--获取数据库链接
    前端学习 -- Html&Css -- 条件Hack 和属性Hack
    前端学习 -- Html&Css -- ie6 png 背景问题
    前端学习 -- Html&Css -- 框架集
    ECMAScript 6 -- 字符串的扩展
    ECMAScript 6 -- 数组的解构赋值
    前端学习 -- Html&Css -- 表单
    前端学习 -- Html&Css -- 表格
  • 原文地址:https://www.cnblogs.com/ecake/p/9747137.html
Copyright © 2020-2023  润新知