加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

go语言中常用的文件和文件夹操作函数

发布时间:2020-12-16 18:02:48 所属栏目:大数据 来源:网络整理
导读:package main;import ("os""log""time""fmt")//一些常用的文件操作函数func main() {//创建目录//perm权限设置,os.ModePerm为0777err := os.Mkdir("./tmp",os.ModePerm);if err != nil {log.Fatal(err);}//创建多级目录err2 := os.MkdirAll("./a/b/c",os.Mo
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);
	}
}

  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读