go语言学习笔记---读取文件io/ioutil 包
io/ioutil 包几个函数方法
| 名称 | 作用 | 备注 |
| ReadAll | 读取数据,返回读到的字节 slice | 1 |
| ReadDir | 读取一个目录,返回目录入口数组 []os.FileInfo, | 2 |
| ReadFile | 读一个文件,返回文件内容(字节slice) | 3 |
| WriteFile | 根据文件路径,写入字节slice | 4 |
| TempDir | 在一个目录中创建指定前缀名的临时目录,返回新临时目录的路径 | 5 |
| TempFile | 在一个目录中创建指定前缀名的临时文件,返回 os.File | 6 |
示例
ReadAll
// ReadAll 读取 r 中的所有数据
// 返回读取的数据和读取过程中遇到的任何错误
// 如果读取成功,则 err 返回 nil,而不是 EOF
func ReadAll(r io.Reader) ([]byte, error)
r := strings.NewReader("Go is a general-purpose language designed with systems programming in mind.") b, err := ioutil.ReadAll(r)
if err != nil {
log.Fatal(err)
} fmt.Printf("%s", b) /*output:
Go is a general-purpose language designed with systems programming in mind.
*/
ReadFile
// ReadFile 读取文件中的所有数据
// 返回读取的数据和读取过程中遇到的任何错误
// 如果读取成功,则 err 返回 nil,而不是 EOF
func ReadFile(filename string) ([]byte, error) func main() {
ra, _ := ioutil.ReadFile("C:\\Windows\\win.ini")
fmt.Printf("%s", ra)
}
ReadDir
// ReadDir 读取目录 dirmane 中的所有目录和文件(不包括子目录)
// 返回读取到的文件的信息列表和读取过程中遇到的任何错误
// 返回的文件列表是经过排序的
func ReadDir(dirname string) ([]os.FileInfo, error)
func main() {
rd, err := ioutil.ReadDir("C:\\Windows")
for _, fi := range rd {
fmt.Println("")
fmt.Println(fi.Name())
fmt.Println(fi.IsDir())
fmt.Println(fi.Size())
fmt.Println(fi.ModTime())
fmt.Println(fi.Mode())
}
fmt.Println("")
fmt.Println(err)
}
WriteFile
// WriteFile 向文件 filename 中写入数据 data
// 如果文件不存在,则以 perm 权限创建该文件
// 如果文件存在,则先清空文件,然后再写入
// 返回写入过程中遇到的任何错误
func WriteFile(filename string, data []byte, perm os.FileMode) error
func main() {
fn := "C:\\Test.txt"
s := []byte("Hello World!")
ioutil.WriteFile(fn, s, os.ModeAppend)
rf, _ := ioutil.ReadFile(fn)
fmt.Printf("%s", rf)
// Hello World!
}
TempFile
// TempFile 在目录 dir 中创建一个临时文件并将其打开
// 文件名以 prefix 为前缀
// 返回创建的文件的对象和创建过程中遇到的任何错误
// 如果 dir 为空,则在系统的临时目录中创建临时文件
// 如果环境变量中没有设置系统临时目录,则在 /tmp 中创建临时文件
// 调用者可以通过 f.Name() 方法获取临时文件的完整路径
// 调用 TempFile 所创建的临时文件,应该由调用者自己移除
func TempFile(dir, prefix string) (f *os.File, err error) func main() {
dn := "C:\\"
f, _ := ioutil.TempFile(dn, "Test")
fmt.Printf("%s", f.Name())
}
TempDir
// TempDir 功能同 TempFile,只不过创建的是目录
// 返回值也只返目录的完整路径
func TempDir(dir, prefix string) (name string, err error) func main() {
dn := "C:\\"
f, _ := ioutil.TempDir(dn, "Test")
fmt.Printf("%s", f.Name())
}
go语言学习笔记---读取文件io/ioutil 包的更多相关文章
- APUE学习笔记3_文件IO
APUE学习笔记3_文件IO Unix中的文件IO函数主要包括以下几个:open().read().write().lseek().close()等.这类I/O函数也被称为不带缓冲的I/O,标准I/O ...
- 树莓派学习笔记——使用文件IO操作GPIO SysFs方式
0 前言 本文描写叙述假设通过文件IO sysfs方式控制树莓派 GPIO端口.通过sysfs方式控制GPIO,先訪问/sys/class/gpio文件夹,向export文件写入GPIO编号, ...
- Go语言学习笔记(五)文件操作
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 文件读取 os.File 封装了文件相关操作 type File File代表一个打开的文件对象. func Cr ...
- HTML语言学习笔记(会更新)
# HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...
- Linux系统学习笔记:文件I/O
Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...
- Go语言学习笔记(1)——顺序编程
Go语言学习笔记这一堆主要是<Go语言编程>(人民邮电出版社)的读书笔记.中间会穿插一些零碎的点,比如源码学习之类的.大概就是这样吧. 1. 顺序编程 1.1 变量 变量的声明: var ...
- SpringMVC:学习笔记(8)——文件上传
SpringMVC--文件上传 说明: 文件上传的途径 文件上传主要有两种方式: 1.使用Apache Commons FileUpload元件. 2.利用Servlet3.0及其更高版本的内置支持. ...
- 2017-05-4-C语言学习笔记
C语言学习笔记... ------------------------------------ Hello C语言:什么是程序:程序是指:完成某件事的既定方式和过程.计算机中的程序是指:为了让计算机执 ...
- GO语言学习笔记(一)
GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...
随机推荐
- 虚拟变量和独热编码的区别(Difference of Dummy Variable & One Hot Encoding)
在<定量变量和定性变量的转换(Transform of Quantitative & Qualitative Variables)>一文中,我们可以看到虚拟变量(Dummy Var ...
- 【JZOJ6216】【20190614】序列计数
题目 一个长为\(N\)的串\(S\),\(M\)询问区间\([l,r]\)不同的子串个数,字符集为$ C $ \(N ,M \le 10^5 \ , \ C \le 10\) 题解 这题非常套路.. ...
- 【loj2568】【APIO2016】【学习笔记 左偏树】烟花表演
题目 一棵树,\(n\)个非叶子节点,编号为\(1-n\),\(m\)个叶子节点,编号为\(n+1-n+m\) 每条边有边权,修改边权的代价为\(|a-b|\) ; 定义一个叶子的距离为到1(根节点) ...
- Cocos CreatorUI系统下
若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理. 请点赞!因为你们的赞同/鼓励是我写作的最大动力! 欢迎关注达叔小生的简书! 这是一个有质量 ...
- ajax post data 获取不到数据,注意 content-type的设置 、post/get(转)
ajax post data 获取不到数据,注意 content-type的设置 .post/get 关于 jQuery data 传递数据.网上各种获取不到数据,乱码之类的. 好吧今天我也遇到了 ...
- mysql in和not in
mysql> select * from table1; +----------+------------+-----+---------------------+-------+ | name ...
- Hadoop 在启动或者停止的时候需要输入yes确认问题
启动或者停止hadoop的时候,信息如下: Stopping namenodes on [hadoop1 hadoop2] The authenticity of host 'hadoop2 (172 ...
- koa post提交数据,koa-bodyparser中间件来获取post提交数据
原生 Nodejs 获取 post 提交数据 首先创建并初始化一个node应用,根路由使用index.ejs模板 var Koa=require('koa') var router = require ...
- Hbuilder提交项目到GitHub出现cannot open git-upload-pack
问题描述 Hbuilder上传本地项目到GitHub时是通过下载的Egit插件,然而提交代码时出现下图问题 网上有说添加http的sslVerify=false,然并卵. 解决方案 不用hbuilde ...
- http statusCode(状态码)请求URL返回状态值的含义
http statusCode(状态码)请求URL返回状态值的含义 请求URL浏览器返回状态码的含义(http statusCode): 201-206都表示服务器成功处理了请求的状态代码,说明网页可 ...