1. ------------------------------------------------------------
  2.  
  3. // Discard 是一个 io.Writer 接口,调用它的 Write 方法将不做任何事情
  4. // 并且始终成功返回。
  5. var Discard io.Writer = devNull(0)
  6.  
  7. // ReadAll 读取 r 中的所有数据,返回读取的数据和遇到的错误。
  8. // 如果读取成功,则 err 返回 nil,而不是 EOF,因为 ReadAll 定义为读取
  9. // 所有数据,所以不会把 EOF 当做错误处理。
  10. func ReadAll(r io.Reader) ([]byte, error)
  11.  
  12. // ReadFile 读取文件中的所有数据,返回读取的数据和遇到的错误。
  13. // 如果读取成功,则 err 返回 nil,而不是 EOF
  14. func ReadFile(filename string) ([]byte, error)
  15.  
  16. // WriteFile 向文件中写入数据,写入前会清空文件。
  17. // 如果文件不存在,则会以指定的权限创建该文件。
  18. // 返回遇到的错误。
  19. func WriteFile(filename string, data []byte, perm os.FileMode) error
  20.  
  21. // ReadDir 读取指定目录中的所有目录和文件(不包括子目录)。
  22. // 返回读取到的文件信息列表和遇到的错误,列表是经过排序的。
  23. func ReadDir(dirname string) ([]os.FileInfo, error)
  24.  
  25. // NopCloser 将 r 包装为一个 ReadCloser 类型,但 Close 方法不做任何事情。
  26. func NopCloser(r io.Reader) io.ReadCloser
  27.  
  28. // TempFile 在 dir 目录中创建一个以 prefix 为前缀的临时文件,并将其以读
  29. // 写模式打开。返回创建的文件对象和遇到的错误。
  30. // 如果 dir 为空,则在默认的临时目录中创建文件(参见 os.TempDir),多次
  31. // 调用会创建不同的临时文件,调用者可以通过 f.Name() 获取文件的完整路径。
  32. // 调用本函数所创建的临时文件,应该由调用者自己删除。
  33. func TempFile(dir, prefix string) (f *os.File, err error)
  34.  
  35. // TempDir 功能同 TempFile,只不过创建的是目录,返回目录的完整路径。
  36. func TempDir(dir, prefix string) (name string, err error)
  37.  
  38. ------------------------------
  39.  
  40. // 示例:读取目录
  41. func main() {
  42. rd, err := ioutil.ReadDir("/")
  43. fmt.Println(err)
  44. for _, fi := range rd {
  45. if fi.IsDir() {
  46. fmt.Printf("[%s]\n", fi.Name())
  47.  
  48. } else {
  49. fmt.Println(fi.Name())
  50. }
  51. }
  52. }
  53.  
  54. ------------------------------
  55.  
  56. // 示例:临时目录、临时文件
  57. func main() {
  58. // 创建临时目录
  59. dir, err := ioutil.TempDir("", "Test")
  60. if err != nil {
  61. fmt.Println(err)
  62. }
  63. defer os.Remove(dir) // 用完删除
  64. fmt.Printf("%s\n", dir)
  65.  
  66. // 创建临时文件
  67. f, err := ioutil.TempFile(dir, "Test")
  68. if err != nil {
  69. fmt.Println(err)
  70. }
  71. defer os.Remove(f.Name()) // 用完删除
  72. fmt.Printf("%s\n", f.Name())
  73. }
  74.  
  75. ------------------------------------------------------------

Golang学习 - io/ioutil 包的更多相关文章

  1. go语言学习笔记---读取文件io/ioutil 包

    io/ioutil 包几个函数方法 名称  作用 备注 ReadAll 读取数据,返回读到的字节 slice 1 ReadDir 读取一个目录,返回目录入口数组 []os.FileInfo, 2 Re ...

  2. go标准库的学习-io/ioutil

    参考https://studygolang.com/pkgdoc 导入方式: import "io/ioutil" 包ioutil实现了一些I/O实用程序函数. 1.var 变量 ...

  3. go 学习之io/ioutil包

    // Discard 是一个 io.Writer 接口,调用它的 Write 方法将不做任何事情// 并且始终成功返回.var Discard io.Writer = devNull(0) // Re ...

  4. Golang学习 - io 包

    ------------------------------------------------------------ 先说一下接口,Go 语言中的接口很简单,在 Go 语言的 io 包中有这样一个 ...

  5. Golang学习笔记:包制作

    golang的包跟java as js之类的大不一样,一定要存在GOPATH里面,GOPATH是专门用于存放golang第三方的库,里面有两个文件夹, src:源代码目录 pkg:编译后的第三方包,这 ...

  6. Golang学习 - path/filepath 包

    ------------------------------------------------------------ filepath 中的函数会根据不同平台做不同的处理,比如路径分隔符.卷名等. ...

  7. Golang学习 - unicode/utf16 包

    ------------------------------------------------------------ // IsSurrogate 判断 r 是否为代理区字符 // 两个代理区字符 ...

  8. Golang学习 - unicode/utf8 包

    ------------------------------------------------------------ // 编码所需的基本数字 const ( RuneError = '\uFFF ...

  9. golang学习 ----获取URL

    package main import ( "fmt" "io/ioutil" "net/http" "os" ) fu ...

随机推荐

  1. Linux/Unix mac 命令笔记

    bg和fg Linux/Unix 区别于微软平台最大的优点就是真正的多用户,多任务.因此在任务管理上也有别具特色的管理思想.我们知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行 ...

  2. 分布式文件系统--GFS

    分布式文件系统 分布式文件系统:当数据集的大小超过一台独立物理计算机的存储能力时,就有必要对它进行分区(partition)并存储到若干台单独的计算机上.管理网络中夸多台计算机存储的文件系统.这种系统 ...

  3. Guid函数

    使用GUID函数可以得到一个不重复的序列号,但是考虑到会出现并发等一系列情况,所以建议使用时间+GUID的方法去生成一串序列号 ,一般语法如下: string str = System.Guid.Ne ...

  4. 《Java程序员修炼之道》

    原子类:java.util.concurrent.atomic 线程锁:java.util.concurrent.locks 对付死锁:boolean acquired = lock.tryLock( ...

  5. WPF的DataGrid绑定ItemsSource后第一次加载数据有个别列移位的解决办法

    最近用WPF的DataGrid的时候,发现一个很弱智的问题,DataGrid的ItemsSource是绑定了一个属性: 然后取数给这个集合赋值的时候,第一次赋值,就会出现列移位 起初还以为是显卡的问题 ...

  6. javascript 汉字生成拼音

    在网上下载的一个汉字生成拼音的js,很有用,大家一起分享! var PinYin = {"a":"/u554a/u963f/u9515","ai&qu ...

  7. Oracle:递归查询(树形结构数据)

    今天要做一个查询功能:查询某用户所属部门,且包含该部门的所有上级部门信息.偶然找到了一个方法,特意来做个笔记.分享给和我一样的菜鸟,哈哈 查询子节点 1 select * 2 from d_arc_d ...

  8. js中的null和undefined

    大部分编程语言一般有一个表示“无”的值,而js中却有两个,null和undefined.所以查了一些资料,小结在此,以便查阅. js中的变量有两大类,基本的值类型,引用类型.其中值类型分为:Undef ...

  9. java正则表达式语法详解及其使用代码实例

    原文地址 译者序(下载代码) 正则表达式善于处理文本,对匹配.搜索和替换等操作都有意想不到的作用.正因如此,正则表达式现在是作为程序员七种基本技能之一*,因此学习和使用它在工作中都能达到很高的效率. ...

  10. php写扩展

    用PHP扩展做一个HelloWorld! PHP 尽管提供了大量有用的函数,但是在特殊情况下还可能需要进行扩展编程,比如大量的 PECL(PHP Extension Community Library ...