一: 相关的API

1func Create(name string) (file *File, err Error)
根据提供的文件名创建新的文件,返回一个文件对象,默认权限是0666
2 func NewFile(fd uintptr, name string) *File
 根据文件描述符创建相应的文件,返回一个文件对象
3 func Open(name string) (file *File, err Error)
只读方式打开一个名称为name的文件
4 func OpenFile(name string, flag int, perm uint32) (file *File, err Error)
打开名称为name的文件,flag是打开的方式,只读、读写等,perm是权限
5 func (file *File) Write(b []byte) (n int, err Error)
写入byte类型的信息到文件
6 func (file *File) WriteAt(b []byte, off int64) (n int, err Error)
在指定位置开始写入byte类型的信息
7 func (file *File) WriteString(s string) (ret int, err Error)
写入string信息到文件
8 func (file *File) Read(b []byte) (n int, err Error)
读取数据到b中
9 func (file *File) ReadAt(b []byte, off int64) (n int, err Error)
从off开始读取数据到b中
10 func Remove(name string) Error
删除文件名为name的文件

二: 写文件

package main

import (
"os"
"fmt"
) func main() {
//新建文件
file, err := os.Create("./xxx.txt")
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
//写入内容
for i := ; i < ; i++ {
//写入信息
file.WriteString("ab\n")
file.Write([]byte("cd\n"))
}
}

三:读文件

package main

import (
"os"
"fmt"
) func main() {
//打开文件
file, err := os.Open("./xxx.txt")
if err != nil {
fmt.Println(err)
}
defer file.Close()
buf := make([]byte, )
for {
//读文件
n, _ := file.Read(buf)
if n == {
break
}
fmt.Println(string(buf))
}
}

四:拷贝文件

package main

import (
"os"
"fmt"
"io"
) func main() {
//打开文件
srcFile, err := os.Open("./xxx.txt")
if err != nil {
fmt.Println(err)
return
}
//创建目标文件
dstFile, err2 := os.Create("./yyy.txt")
if err2 != nil {
fmt.Println(err2)
return
}
//切片缓冲区
buf := make([]byte, )
for {
//从源文件读
n, err := srcFile.Read(buf)
//Read()若无法得到更多的结果,就返回EOF
if err != nil && err != io.EOF {
fmt.Println(err)
break
}
if n == {
fmt.Println("文件处理完毕")
break
}
//读到的内容写入目标文件
dstFile.Write(buf[:n])
}
srcFile.Close()
dstFile.Close()
}

最新文章

  1. SQL Server-聚焦使用视图若干限制/建议、视图查询性能问题,你懵逼了?(二十五)
  2. 【转】WPF DataGrid 获取选中的当前行某列值
  3. 分享一个我的JavaScript版GridView多功能表格
  4. 树莓派wiringPi库详解
  5. Linux Discuz论坛的安装
  6. hibernate4整合spring3事务问题
  7. OperService.class.php
  8. C辗转相除法求最大公约数的实现
  9. Instant Complexity(模拟,递归)
  10. 你不知道的Eclipse的用法:使用MAT分析Android的内存
  11. 调用Lua出错
  12. strcat的用法
  13. _itemmod_add
  14. swift 数组 的一些快速方法
  15. docker swarm英文文档学习-1-概述
  16. HTTP header location 重定向 URL
  17. HBase + Solr Cloud实现HBase二级索引
  18. block本质探寻四之copy
  19. swift - UISwitch 的用法
  20. linux 下创建虚拟环境 python

热门文章

  1. PDOStatement::getAttribute
  2. Vue通过Blob对象实现导出Excel功能
  3. Fragment为什么须要无参构造方法
  4. 【小白学AI】线性回归与逻辑回归(似然参数估计)
  5. c++ explict
  6. QComboBox设置下拉item大小
  7. 六种酷炫Python运行进度条
  8. 【av68676164(p55-p58)】 Intel CPU和Linux内存管理
  9. LibSvm流程及java代码测试
  10. windows安装cnpm步骤