当前位置: 首页 > article >正文

golang读、写、复制、创建目录、删除、重命名,文件方法总结

文章目录

  • 一、只读文件
  • 二、写入文件
  • 三、复制文件
  • 四、创建目录
  • 五、删除目录/文件
  • 五、重命名文件

一、只读文件

 file, err := os.Open("./main.go")defer file.Close() //打开文件一定要关闭关闭文件if err != nil {fmt.Println("文件打开失败", err)}/*方案一 */	// 读取文件内容var typeSlice = make([]byte, 128) //创建byte切片 128字节var strSlice []bytefor { //循环128 128方式的去读n, err := file.Read(typeSlice)if err == io.EOF { //文件读取完毕fmt.Println("文件读取完毕")break}if err != nil {fmt.Println("文件读取失败", err)return}fmt.Printf("读取了%d个字节\n", n)strSlice = append(strSlice, typeSlice[:n]...) //最后一次读取不一定是128字节}fmt.Println("读取的内容:", string(strSlice)) //string内容 必须是执行读取之后再打印/*方案二 bufio读取文件 */reader := bufio.NewReader(file)var fileStr stringfor {str, err := reader.ReadString('\n') //读取一行 一行一行的读取if err == io.EOF {                  //文件读取完毕fileStr += strfmt.Println("文件读取完毕")break}if err != nil {fmt.Println("文件读取失败", err)return}fmt.Println("读取的内容:", str)fileStr += str  //拼接字符串}fmt.Println("读取的文件内容:", fileStr)/*方案三 ioutil读取文件  适合文件不大*/byteStr, err := ioutil.ReadFile("./main.go")if err != nil {fmt.Println("文件读取失败", err)return}fmt.Println("读取的文件内容:", string(byteStr))

二、写入文件

/*写文件 os.O_CREATE创建 | os.O_WRONLY只写 |  os.O_TRUNC清空文件 | os.O_APPEND追加*/file, err := os.OpenFile("./test.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)defer file.Close()if err != nil {fmt.Println("文件打开失败", err)return}//方法一 写入文件file.WriteString("hello world") // 写入字符串//方法二 写入文件file.Write([]byte("hello world"))// 方法三 写入文件writer := bufio.NewWriter(file)writer.WriteString("你好 golang") //将数据先写入缓存writer.Flush()                  //刷新缓冲区,将缓存的数据写入文件//方法四 写入文件 但是覆盖全部str := "hello golang"err := ioutil.WriteFile("./test.txt", []byte(str), 0666)if err != nil {fmt.Println("文件写入失败", err)return}

三、复制文件

// 方法一byteStr, err := ioutil.ReadFile("test.txt")if err != nil {fmt.Println("文件读取失败", err)return}err1 := ioutil.WriteFile("test2.txt", byteStr, 0666)if err1 != nil {fmt.Println("文件写入失败", err)return}fmt.Println("文件复制成功")

四、创建目录

     err := os.Mkdir("./test3", 0666)err := os.MkdirAll("./test3/test4", 0666) //创建多级目录if err != nil {fmt.Println("创建目录失败", err)return}fmt.Println("创建目录成功")

五、删除目录/文件

   err := os.Mkdir("./test3", 0666)err := os.RemoveAll("./test3/test4") //到哪一级删哪一级if err != nil {fmt.Println("删除目录失败", err)return}fmt.Println("删除目录成功")

五、重命名文件

   err := os.Rename("./test.txt", "./test1.txt")if err != nil {fmt.Println("重命名失败", err)return}fmt.Println("重命名成功")
http://www.lryc.cn/news/2378468.html

相关文章:

  • 如何使用通义灵码辅助学习C++编程 - AI编程助手提升效率
  • 解决LeetCode 47. 全排列 II 问题的正确姿势:深入分析剪枝与状态跟踪
  • ubuntu18 设置静态ip
  • 【Docker】CentOS 8.2 安装Docker教程
  • K230 ISP:一种新的白平衡标定方法
  • 桃芯ingchips——windows HID键盘例程无法同时连接两个,但是安卓手机可以的问题
  • SQL看最多的数据,但想从小到大排列看趋势
  • Go语言 Gin框架 使用指南
  • [Linux] vim及gcc工具
  • YOLOv11改进 | Neck篇 | 轻量化跨尺度跨通道融合颈部CCFM助力YOLOv11有效涨点
  • MySQL只操作同一条记录也会死锁吗?
  • 数据结构与算法——双向链表
  • MODBUS RTU调试助手使用方法详解
  • 自由学习记录(60)
  • 现代计算机图形学Games101入门笔记(三)
  • WeakAuras Lua Script <BiaoGe>
  • 计算机视觉与深度学习 | LSTM应用合集
  • 在Verilog中,逻辑右移(Logical Right Shift)和算术右移(Arithmetic Right Shift)的区别
  • Go语言 GORM框架 使用指南
  • STM32控制电机
  • 力扣刷题(第二十九天)
  • chrome 浏览器插件 myTools, 日常小工具。
  • Leaflet使用SVG创建动态Legend
  • 智慧校园(含实验室)智能化专项汇报方案
  • 第三十四节:特征检测与描述-SIFT/SURF 特征 (专利算法)
  • ORACLE数据库实例报错ORA-00470: LGWR process terminated with error宕机问题分析报告
  • 【前端优化】vue2 webpack4项目升级webpack5,大大提升运行速度
  • Nginx应用场景详解与配置指南
  • vue2 切换主题色以及单页面好使方法
  • React学习———CSS Modules(样式模块化)