import ( "fmt" "os" ) func main() { //创建文件时,需要指定文件的存储路径以及文件名称 file, err := os.Create("D:/Test/a.txt") if err != nil { fmt.Println(err) } //对文件进行操作 //关闭 defer表示延迟执行 defer file.Close() }
func main() { //创建文件时,需要指定文件的存储路径以及文件名称 file, err := os.Create("D:/Test/a.txt") if err != nil { fmt.Println(err) } defer file.Close() //对文件进行操作 n, err := file.WriteString("aaaaaaaaaaa") if err != nil { fmt.Println(err) } fmt.Println(n) }
func main() { //创建文件时,需要指定文件的存储路径以及文件名称 file, err := os.Create("D:/Test/a.txt") if err != nil { fmt.Println(err) } defer file.Close() //对文件进行操作 var str string = "Hello Wprld" n, err := file.Write([]byte(str)) //需要将字符串转换成字节切片 if err != nil { fmt.Println(err) } fmt.Println(n) }
func main() { //创建文件时,需要指定文件的存储路径以及文件名称 file, err := os.Create("D:/Test/a.txt") if err != nil { fmt.Println(err) } defer file.Close() //对文件进行操作 var str string = "Hello World002" file.WriteString("Hello World001") n, err := file.WriteAt([]byte(str), 2) //第二个参数表示指定位置写入数据 if err != nil { fmt.Println(err) } fmt.Print(n) }
openFile方法
openFile有3个参数,
第一个参数表示打开文件的路径,
第二个参数表示:模式,常见的模式有O_RDONLY(只读模式),O_WRONLY(只写模式),O_RDWR(可读可写),O_APPEND(追加模式)
O_RDWR:在文件开头进行替换
O_WRONLY:在文件开头进行替换
O_APPEND:在文件末尾处进行追加
第三个参数表示:权限,取值范围(0——7)
表示如下:
0:表示没有任何权限
1:执行权限
2:写权限
4:读权限
其他数字为1,2,4权限相互组合
func main() { file, err := os.OpenFile("D:/Test/a.txt", os.O_APPEND, 6) if err != nil { fmt.Println(err) } defer file.Close() num, err := file.WriteString("Hello World001") fmt.Println("num = ", num) if err != nil { fmt.Println(err) } }
open方法与openFile方法的不同
open方法是封装openFile方法的方法,open方法直接return OpenFile(name, os.O_RDONLY, 0)
func main() { //1.打开要读取的文件 file, err := os.OpenFile("D:/Test/a.txt", os.O_RDONLY, 0) if err != nil { fmt.Println(err) } defer file.Close() //2.顶一个字符切片,存储从文件中读取的数据 buffer := make([]byte, 1024*2) n, err := file.Read(buffer) if err != nil { fmt.Println(err) } fmt.Println(n) fmt.Println(string(buffer[:n])) }
func main() { //1.打开要读取的文件 file, err := os.OpenFile("D:/Test/a.txt", os.O_RDONLY, 0) if err != nil { fmt.Println(err) } defer file.Close() //2.顶一个字符切片,存储从文件中读取的数据 buffer := make([]byte, 10) for { n, err := file.Read(buffer) if err == io.EOF { break } fmt.Println(string(buffer[:n])) }
func main() { //1.打开要读取的文件 file1, err := os.Open("D:/Test/a.txt") if err != nil { fmt.Println(err) } defer file1.Close() //2.创建一个新的文件 file2, err := os.Create("D:/Test/b.txt") if err != nil { fmt.Println(err) } defer file2.Close() //3.顶一个字符切片,存储从文件中读取的数据 buffer1 := make([]byte, 10) for { n, err := file1.Read(buffer1) if err == io.EOF { break } file2.Write(buffer1[:n]) } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!