zoukankan      html  css  js  c++  java
  • go语言中常用的文件和文件夹操作函数

    package main;
    
    import (
    	"os"
    	"log"
    	"time"
    	"fmt"
    )
    
    //一些常用的文件操作函数
    
    func main() {
    	//创建目录
    	//perm权限设置,os.ModePerm为0777
    	err := os.Mkdir("./tmp", os.ModePerm);
    	if err != nil {
    		log.Fatal(err);
    	}
    
    	//创建多级目录
    	err2 := os.MkdirAll("./a/b/c", os.ModePerm);
    	if err2 != nil {
    		log.Fatal(err2);
    	}
    
    	//等个3秒,看目录是否创建成功
    	time.Sleep(time.Second * 3);
    
    	//删除目录
    	//如果目录下有文件或其他目录会出错
    	err3 := os.Remove("./tmp");
    	if err3 != nil {
    		log.Fatal(err3);
    	}
    
    	//删除多级目录
    	//如果是单个名称,则删除所有子目录
    	err4 := os.RemoveAll("./a/b/c");
    	if err4 != nil {
    		log.Fatal(err4);
    	}
    
    	//文件操作
    	//创建文件
    	//Create会返回一个文件对象,默认权限0666
    	file1, err5 := os.Create("./1.log");
    	defer file1.Close();
    	if err5 != nil {
    		log.Fatal(err5);
    	}
    
    	//通过文件描述符(文件句柄)来创建文件
    	file2 := os.NewFile(file1.Fd(), "./2.log");
    	defer file2.Close();
    
    	//打开文件
    	//Open内部调用OpenFile,以只读方式打开
    	file3, err6 := os.Open("./1.txt");
    	defer file3.Close();
    	if err6 != nil {
    		log.Fatal(err6);
    	}
    
    	//OpenFile指定文件打开方式,只读,只写,读写和权限
    	file4, err7 := os.OpenFile("./2.txt", os.O_RDWR, 0666);
    	defer file4.Close();
    	if err7 != nil {
    		log.Fatal(file4);
    	}
    
    	//向文件写入数据
    	file4.Write([]byte("我写入数据"));
    
    	//在指定位置写入数据
    	file4.WriteAt([]byte("指定位置写入数据"), 1024);
    
    	//直接写入string
    	file4.WriteString("你好世界");
    
    	//读取文件数据
    
    	//将文件偏移量设置为开头
    	file4.Seek(0, 0);
    	tmp := make([]byte, 256);
    	//Read读取数据到[]byte中
    	for n, _ := file4.Read(tmp); n != 0; n, _ = file4.Read(tmp) {
    		fmt.Println(string(tmp));
    	}
    
    	//ReadAt从off指定位置读取数据到[]byte中
    	file4.Seek(0, 0);
    	var off int64 = 0;
    	for {
    		n, _ := file4.ReadAt(tmp, off);
    		off += int64(n);
    		if n == 0 {
    			break;
    		}
    
    		fmt.Println(string(tmp));
    	}
    
    	//删除文件
    	//Go中删除文件和删除文件夹同一个函数
    	err8 := os.Remove("./1.txt");
    	if err8 != nil {
    		log.Fatal(err8);
    	}
    }
    

      

  • 相关阅读:
    mongodb副本集群搭建
    redis 哨兵集群搭建
    mysql binlog备份
    MySQL 日志
    mysql 事务及innodb隔离级别
    sysbench使用
    PXC安装
    mysql搭建主从数据库
    GTID
    文件的压缩和解压
  • 原文地址:https://www.cnblogs.com/jkko123/p/7026117.html
Copyright © 2011-2022 走看看