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);
}
}
go语言中常用的文件和文件夹操作函数的更多相关文章
- C语言中常用计时方法总结
转自:http://blog.csdn.net/fz_ywj/article/details/8109368 C语言中常用计时方法总结 1. time() 头文件:time.h 函数原型:time_t ...
- linux 中常用的一些头文件
#include <linux/***.h> 是在linux-2.6.29/include/linux下面寻找源文件. #include <asm/***.h> 是在linux ...
- Java中常用IO流之文件流的基本使用姿势
所谓的 IO 即 Input(输入)/Output(输出) ,当软件与外部资源(例如:网络,数据库,磁盘文件)交互的时候,就会用到 IO 操作.而在IO操作中,最常用的一种方式就是流,也被称为IO流. ...
- go 语言中常用的包
来自学习go语言.pdf 译者刑星 ==== fmt 包fmt实现了格式化IO函数,这与c的printf和scanf类似,格式化短语派生于c %v 默认格式的值.当打印结构时,加号(%+v)会增加字段 ...
- C语言中常用的字符串处理函数总结
C语言中字符串处理函数备注 此文仅用于自己研究和记录 字符串处理函数 1. char *gets(char *s); #include<stdio.h> 功能: 从标准输入读入字符,并保存 ...
- linux 文件名称前后缀操作函数----取目录函数dir、取文件名称函数notdir、取后缀函数suffix、取前缀basename、加后缀函数addsuffix、加前缀addprefix、连接函数join
1.1 文件名操作函数 下面我们要介绍的函数主要是处理文件名的.每个函数的参数字符串都会被当做一个或是一系列的文件名来对待. 1.1.1 取目录函数dir $(dir < ...
- C语言中以文本方式读写文件时换行符转换的注意事项
我们知道在UNIX下是没有回车符(\r)的,只有换行符(\n),而C语言诞生于UNIX(Linux即面向开源的UNIX,Mac OS也是UNIX发展而来的,而Windows是从MS-DOS发展而来,与 ...
- ssm项目中常用的上传文件
在项目中,上传文件一般是必不可少的,所以今天学到新的上传方式,就干脆将学习过的上传方式记录一下 一.表单直接上传图片 表单头要设置 <form action="" metho ...
- C 语言中包含的标准头文件(24个)
<assert.h><complex.h><ctype.h><errno.h><fenv.h><float.h><intt ...
随机推荐
- jquery Load方法的重要点
一个非常重要而且很容易忽视的问题就是:你是否load进了你必须load的元素,是否有的没有load进来,打开firebug查看一下
- LeetCode OJ 450. Delete Node in a BST
Given a root node reference of a BST and a key, delete the node with the given key in the BST. Retur ...
- 一,Serializer和ModelSerializer
1.REST Framework概述 Django REST framework是一套基于Django的REST框架,是一个用于构建Web API的功能强大且灵活的工具包. RESTful 简述 Re ...
- Oracle数据库操作总是显示运行中无法成功,删除表时报错 resource busy and acquire with NOWAIT specified
1.直接运行以下语句: select t2.username,t2.sid,t2.serial#,t2.logon_timefrom v$locked_object t1,v$session t2wh ...
- Oracle监听程序未启动或数据库服务未注册到该监听
oracle新建数据库的时候提示Could not find appropriate listener for this database要做的操作如下: 1.查看netmanager里面的liste ...
- hibernateTemplate API
https://docs.spring.io/spring-framework/docs/2.5.x/api/org/springframework/orm/hibernate3/HibernateT ...
- 深入理解hello world
阅读目录 为什么所有东西都是从类开始的 为什么总是需要有一个“main”方法 HelloWorld的字节码 HelloWorld在JVM中是如何运行的 对于每个Java程序员来说,HelloWorld ...
- linux移植常见问题
*************1.给板子添加新的驱动**************** 一. 驱动程序编译进内核的步骤在 linux 内核中增加程序需要完成以下三项工作:1. 将编写的源代码复制 ...
- Gradle安装和在IDEA使用 基本操作
阅读目录 简单介绍 安装 使用idea创建一个web的Gradle项目 如何进行打包 解释build.gradle和settings.gradle 有关gradle的jar冲突 本地jar包位置和修改 ...
- Using promises
[Using promises] 过去,异步方法这样写: function successCallback(result) { console.log("It succeeded with ...