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 ...
随机推荐
- [bzoj1001]狼抓兔子 最小割
题意概述:给出一张无向图,每条边有一个权值,割掉这条边代价为它的权值,求使起点不能到达终点的最小代价. 显然能看出这是个最小割嘛,然后最小割=最大流,建图的时候特殊处理一下再跑个最大流就好了. #in ...
- Dubbo+zookeeper实现单表的增删改查
1.数据库准备 建表语句 CREATE TABLE `tb_brand` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) DEFAULT NULL COMMENT ...
- go 指南学习笔记
1 If for 后面没有小括号.后面的花括号,要在当前行,并且中间有内容,右花括号要单独一行. 因为go会格式化代码,自动插入分号. 2 函数和方法的区别: 方法需要有一个接受者(select ...
- centos7安装mysql8 ERROR! The server quit without updating PID file
原因mysql的安装目录在/etc/my.cnf配置不正确或者目录中的文件没有权限导致的,或者日志目录没有权限导致的 使用chwon -R mysql:mysql mysql的日志目录后重启mysq ...
- 关于SpringCloud、SpringBoot简单讲解
什么是Spring Boot 用我的话来理解,Spring Boot就是整合了框架的框架,它让一切依赖都变得有序简单,你不用操心A.jar是什么版本,又依赖哪些版本的jar,它默认配置了很多框架的使 ...
- [代码质量] 推荐一个vs自带工具分析代码的复杂度
转载自: https://blog.csdn.net/zh_geo/article/details/52954145 VS2012 -> Analyze -> Calculate code ...
- plsql查询数据库-中文显示问号问题
解决方法: 设置本地环境变量 :NLS_LANG=AMERICAN_AMERICA.ZHS16GBK https://blog.csdn.net/github_38358734/article/det ...
- docker本地化异常:/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
docker中经常设置不了 环境变量$LC_ALL, 导致报很多奇怪的编码错误: /bin/sh: warning: setlocale: LC_ALL: cannot change locale ...
- node 报错 env: node\r: No such file or directory
最近在编写一个命令行工具.使用 npm link 时可以正常运行.但是 ctrl+s 保存后, 再运行则报错 env: node\r: No such file or directory ,需要再 n ...
- DEPICT实现基因优化(gene prioritization)、gene set富集分析(geneset enrichment)、组织富集分析(tissue enrichment)
全基因组关联分析除了找到显著的关联位点,我们还可以做基因优化.geneset富集分析.组织富集分析,下面具体讲一讲怎么利用GWAS的summary数据做这个分析. summary数据就是关联分析的结果 ...