文件相关的操作均在 os 包里,每次对文件进行操作需要导入 os包
1 .最基本的就是文件的创建,,需要Create函数,该函数返回两个值,一个事文件的指针,还有一个是error类
(同时我们记住每次文件调用完毕需要使用Close()函数将其关闭,避免占用系统资源)
2 .文件写入我们可以使用
①指针.WriteString(“内容”),返回两个值,一个长度,一个错误类型
②Write(b []byte )
③WriteAt(b []byte, on int) ,需要配合 指针.Seek(0,io.SeekEnd) // 将光标定位到文件的内容的最后面,0代表光标在此基础上移动几位
package main
import (
"fmt"
"os"
)
func main(){
file,err:=os.Create("d:/a.txt")
if err!=nil{
fmt.Println(err)
file.Close()
}
//对创建的文件进行相关操作
var str string = "Hello yayue"
n ,err1:= file.Write([]byte(str ))
if err1!= nil{
fmt.Println(err1)
}
var str1 string = "aaa"
num,_ :=file.Seek(0,io.SeekEnd)//将光标定位到文件的内容的最后面,0代表光标在此基础上移动几位
file.WriteAt([]byte(str1),num)
fmt.Println(n)
//关闭文件
defer file.Close()
}
3.打开文件 使用 os.OpenFile(),该函数有3个参数
第一个参数表示 :打开文件的路径。
第二个参数表示 :模式,有os.O_APPEND(追加模式)、os.O_RDONLY(只读模式)、os.O_WRONLY(只写模式)、os.O_RDWR(可读可写模式)。
第三个参数表示 :权限 (0-7)
0:没有任何权限
1:执行权限
2:写权限
3:写权限和执行权限
4:读权限
5:读权限和执行权限
6:读权限和写权限
7:都权限,写权限和执行权限
如果使用file.Open(),则相当于只读打开OpenFile()
文件可以用 filePoint.Read()来读取文件
buffer := make([]byte, 1024) //大小为1kb
num,err := file.Read(buffer)
当我们一个切片变量无法存储全部的文件内容时
当然我们可以循环读取文件内容并输出:
buffer := make([]byte,5)
//num1,err :=file.Read(buffer)//读取到buffer
for {
numN ,err := file.Read(buffer)
if err == io.EOF{ // 表示到达末尾了
break
}
fmt.Println(string(buffer[:numN]))
}