golang中文件的处理

文件相关的操作均在 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]))
}
上一篇:C++ OOP基础


下一篇:通信三要素