当前位置:网站首页>go io模块
go io模块
2022-06-11 21:39:00 【General_zy】
io包提供了对I/O原语的基本接口。本包的基本任务是包装这些原语已有的实现(如os包里的原语),使之成为共享的公共接口,这些公共接口抽象出了泛用的函数并附加了一些相关的原语的操作。
func Copy(dst Writer, src Reader) (written int64, err error)
将src的数据拷贝到dst,直到在src上到达EOF或发生错误。
对成功的调用,返回值err为nil而非EOF,因为Copy定义为从src读取直到EOF,它不会将读取到EOF视为应报告的错误。如果src实现了WriterTo接口,本函数会调用src.WriteTo(dst)进行拷贝;否则如果dst实现了ReaderFrom接口,本函数会调用dst.ReadFrom(src)进行拷贝。
func CopyN(dst Writer, src Reader, n int64) (written int64, err error)
从src拷贝n个字节数据到dst,直到在src上到达EOF或发生错误。
只有err为nil时,written才会等于n。如果dst实现了ReaderFrom接口,本函数很调用它实现拷贝。
func ReadAtLeast(r Reader, buf []byte, min int) (n int, err error)
ReadAtLeast从r至少读取min字节数据填充进buf。函数返回写入的字节数和错误(如果没有读取足够的字节)。只有没有读取到字节时才可能返回EOF;如果读取了有但不够的字节时遇到了EOF,函数会返回ErrUnexpectedEOF。 如果min比buf的长度还大,函数会返回ErrShortBuffer。只有返回值err为nil时,返回值n才会不小于min。
func ReadFull(r Reader, buf []byte) (n int, err error)
ReadFull从r精确地读取len(buf)字节数据填充进buf。函数返回写入的字节数和错误(如果没有读取足够的字节)。只有没有读取到字节时才可能返回EOF;如果读取了有但不够的字节时遇到了EOF,函数会返回ErrUnexpectedEOF。 只有返回值err为nil时,返回值n才会等于len(buf)。
func WriteString(w Writer, s string) (n int, err error)
WriteString函数将字符串s的内容写入w中。如果w已经实现了WriteString方法,函数会直接调用该方法。
ioutil
包ioutil实现了一些I/O实用程序函数。
func ReadAll(r io.Reader) ([]byte, error)
ReadAll从r读取数据直到EOF或遇到error,返回读取的数据和遇到的错误。成功的调用返回的err为nil而非EOF。因为本函数定义为读取r直到EOF,它不会将读取返回的EOF视为应报告的错误。
func ReadFile(filename string) ([]byte, error)
ReadFile 从filename指定的文件中读取数据并返回文件的内容。成功的调用返回的err为nil而非EOF。因为本函数定义为读取整个文件,它不会将读取返回的EOF视为应报告的错误。
func WriteFile(filename string, data []byte, perm os.FileMode) error
函数向filename指定的文件中写入数据。如果文件不存在将按给出的权限创建文件,否则在写入数据之前清空文件。
func ReadDir(dirname string) ([]os.FileInfo, error)
返回dirname指定的目录的目录信息的有序列表。
func TempDir(dir, prefix string) (name string, err error)
在dir目录里创建一个新的、使用prfix作为前缀的临时文件夹,并返回文件夹的路径。如果dir是空字符串,TempDir使用默认用于临时文件的目录(参见os.TempDir函数)。
func TempFile(dir, prefix string) (f *os.File, err error)
在dir目录下创建一个新的、使用prefix为前缀的临时文件,以读写模式打开该文件并返回os.File指针。如果dir是空字符串,TempFile使用默认用于临时文件的目录(参见os.TempDir函数)。
边栏推荐
- 建造者模式
- 實驗10 Bezier曲線生成-實驗提高-控制點生成B樣條曲線
- Look for leap years and see how many leap years I have had since I was born (I have had five)
- Educational Codeforces Round 111 (Rated for Div. 2) C 补题
- LeetCode-155-最小栈
- AC自动机
- 动态内存管理(1)
- JVM | virtual machine stack (local variable table; operand stack; dynamic link; method binding mechanism; method call; method return address)
- CANN编码的一些报错汇编
- 关于斜率优化
猜你喜欢

Leetcode-32- longest valid bracket

apache 本地多端口配置

EndnoteX9簡介及基本教程使用說明

LaTex实战笔记 3-宏包与控制命令

Customer information management software

Release of version 5.6 of rainbow, add multiple installation methods, and optimize the topology operation experience

Leetcode - 第2天

LabVIEW controls Arduino to realize infrared ranging (advanced chapter-6)

flutter系列之:flutter中常用的container layout详解

Leetcode-322- change exchange
随机推荐
Redis basic data type (list)
How to use RPA robot to start the first step of digital transformation of freight forwarding industry?
RPA+低代码助推品牌电商启新创变、重启增长
LaTex实战笔记 3-宏包与控制命令
如何使用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后台存储数据库表的名称
LeetCode-155-最小栈
LeetCode-32-最长有效括号
LeetCode-110-平衡二叉树
Answer fans' questions | count the number and frequency of letters in the text
每日一题 -- 验证回文串
如何使用 SAP Kyma 控制台手动发送 SAP Commerce Cloud Mock 应用暴露的事件
快速排序的三种方法
Codeworks round 740 Div. 2 problem solving Report
Bipartite King
Expérience 10 génération de courbes bezier - amélioration expérimentale - génération de courbes B - spline par point de contrôle
Educational codeforces round 111 (rated for Div. 2) C Supplement
Apache local multi port configuration
网络连接正常但百度网页打不开显示无法访问此网站解决方案
JVM|类加载器;双亲委派机制
apache 本地多端口配置