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 包的更多相关文章

  1. APUE学习笔记3_文件IO

    APUE学习笔记3_文件IO Unix中的文件IO函数主要包括以下几个:open().read().write().lseek().close()等.这类I/O函数也被称为不带缓冲的I/O,标准I/O ...

  2. 树莓派学习笔记——使用文件IO操作GPIO SysFs方式

    0 前言     本文描写叙述假设通过文件IO sysfs方式控制树莓派 GPIO端口.通过sysfs方式控制GPIO,先訪问/sys/class/gpio文件夹,向export文件写入GPIO编号, ...

  3. Go语言学习笔记(五)文件操作

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 文件读取 os.File 封装了文件相关操作 type File File代表一个打开的文件对象. func Cr ...

  4. HTML语言学习笔记(会更新)

    # HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...

  5. Linux系统学习笔记:文件I/O

    Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...

  6. Go语言学习笔记(1)——顺序编程

    Go语言学习笔记这一堆主要是<Go语言编程>(人民邮电出版社)的读书笔记.中间会穿插一些零碎的点,比如源码学习之类的.大概就是这样吧. 1. 顺序编程 1.1 变量 变量的声明: var ...

  7. SpringMVC:学习笔记(8)——文件上传

    SpringMVC--文件上传 说明: 文件上传的途径 文件上传主要有两种方式: 1.使用Apache Commons FileUpload元件. 2.利用Servlet3.0及其更高版本的内置支持. ...

  8. 2017-05-4-C语言学习笔记

    C语言学习笔记... ------------------------------------ Hello C语言:什么是程序:程序是指:完成某件事的既定方式和过程.计算机中的程序是指:为了让计算机执 ...

  9. GO语言学习笔记(一)

    GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...

随机推荐

  1. [bzoj1001]狼抓兔子 最小割

    题意概述:给出一张无向图,每条边有一个权值,割掉这条边代价为它的权值,求使起点不能到达终点的最小代价. 显然能看出这是个最小割嘛,然后最小割=最大流,建图的时候特殊处理一下再跑个最大流就好了. #in ...

  2. Dubbo+zookeeper实现单表的增删改查

    1.数据库准备 建表语句 CREATE TABLE `tb_brand` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) DEFAULT NULL COMMENT ...

  3. go 指南学习笔记

    1   If  for 后面没有小括号.后面的花括号,要在当前行,并且中间有内容,右花括号要单独一行. 因为go会格式化代码,自动插入分号. 2 函数和方法的区别: 方法需要有一个接受者(select ...

  4. centos7安装mysql8 ERROR! The server quit without updating PID file

    原因mysql的安装目录在/etc/my.cnf配置不正确或者目录中的文件没有权限导致的,或者日志目录没有权限导致的 使用chwon -R mysql:mysql  mysql的日志目录后重启mysq ...

  5. 关于SpringCloud、SpringBoot简单讲解

     什么是Spring Boot 用我的话来理解,Spring Boot就是整合了框架的框架,它让一切依赖都变得有序简单,你不用操心A.jar是什么版本,又依赖哪些版本的jar,它默认配置了很多框架的使 ...

  6. [代码质量] 推荐一个vs自带工具分析代码的复杂度

    转载自: https://blog.csdn.net/zh_geo/article/details/52954145 VS2012 -> Analyze -> Calculate code ...

  7. plsql查询数据库-中文显示问号问题

    解决方法: 设置本地环境变量 :NLS_LANG=AMERICAN_AMERICA.ZHS16GBK https://blog.csdn.net/github_38358734/article/det ...

  8. 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 ...

  9. node 报错 env: node\r: No such file or directory

    最近在编写一个命令行工具.使用 npm link 时可以正常运行.但是 ctrl+s 保存后, 再运行则报错 env: node\r: No such file or directory ,需要再 n ...

  10. DEPICT实现基因优化(gene prioritization)、gene set富集分析(geneset enrichment)、组织富集分析(tissue enrichment)

    全基因组关联分析除了找到显著的关联位点,我们还可以做基因优化.geneset富集分析.组织富集分析,下面具体讲一讲怎么利用GWAS的summary数据做这个分析. summary数据就是关联分析的结果 ...