写文件的四种方式 | 学习笔记

简介: 快速学习写文件的四种方式

开发者学堂课程【Go语言核心编程 - 面向对象、文件、单元测试、反射、TCP编程写文件的四种方式】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/626/detail/9730


写文件的四种方式

 

内容介绍

一、基本应用实例-方式一(2)

二、基本应用实例-方式一(3)

三、基本应用实例-方式一(4)

 

一、基本应用实例-方式一(2)

打开一个存在的文件中,将原来的内容覆盖成新的内容10句“你好,尚硅谷!”中

代码实现:

新建一个文件:main.go 写一个组函数。

package main

import(

"fmt”

"bufio"

"os"

func main()

//打开一个存在的文件中,将原来的内容覆盖成新的内容10句“你好,尚硅谷!”

此时出现了一个问题,没有换行,就需要修改代码,最终代码完成如下:

//创建一个新文件,写入内容5句“hello, Gardon”

//1.打开文件已经存在文件,d:/abc.txt

filePath:="d:/abc.txt"

file, err := os.OpenFile(filePath, os.O_WRONLY Os.O_TRUNC,0666)

if err != nil [

fmt.Printf("open file err=%v\n", err)

return

//及时关闭 file 句柄

defer file.Close()

//准备写入5句“你好,尚硅谷!”

str :="你好,尚硅谷!\r\n”//\r\n 表示换行

//写入时,使用带缓存的 *Writer

writer := bufio.NewWriter(file)

for i := 0; i< 10;i++【

writer.Writestring(str)

//因为 writer 是带缓存,因此在调用 Writerstring 方法时,其实

//内容是先写入到缓存的,所以需要调用 Flush 方法,将缓冲的数据

//真正写入到文件中,否则文件中会没有数据!!

 

二、基本应用实例-方式一(3)

打开一个存在的文件,在原来的内容追加内容'ABC!ENGLISH!'

代码实现:

package main

import(

"fmt”

"bufio"

"os"

func main()

//打开一个存在的文件,在原来的内容追加内容‘ABC!ENGLISH!"

//1.打开文件已经存在文件,d/abc.txt

filePath:="d:/abc.txt"

file,er :=os.OpenFile(filePath.b O WRONLY  os.O_APPEND,0666)if err !=nil

fmt.Printf("open file err=ovin", err)

retum

//及时关闭 file 句柄

defer file.CloseO

//准备写入5句“你好,尚硅谷!”

str="ABC,ENGLISH!rin"// rn 表示换行

//写入时,使用带缓存的*Witer

writer :=bufio.NewWriter(file

fori:=0;i<10;i++( I

writer.WriteString(str)

//因为 writer 是带缓存,因此在调用 WiterString 方法时,其实

//内容是先写入到缓存的,所以需要调用 Flush 方法,将缓冲的数据

//真正写入到文件中, 否则文件中会没有数据!!!

writer.Flush

 

三、基本应用实例-方式一(4)

打开一个存在的文件,将原来的内容读出显示在终端,并且追加5句"hello,北京!”

代码实现:

package main

import(

"fmt"

"bufio”

"os"”

"io”

func main() (

//打开一个存在的文件,将原来的内容读出显示在终端,并且追加5句“hello,北京!”

//1.打开文件已经存在文件,d:/abc.txt

filePath:="d:/abc.txt"

file, err := os.OpenFile(filePath, os.O_RDWR os.O_APPEND,0666)if err I= nil f

fmt.Printf("open file err=%v\n", err)

return

//及时关闭 file 句柄

defer file.close()//先读取原来文件的内容,并显示在终端。

reader := bufio.NewReader(file)

for f

str, err := reader.Readstring('\n')

if err == io.EOF //如果读取到文件的末尾

break

//显示到终端

fmt.Print(str)

//准备写入5句“你好,尚硅谷!”

str :="hello,北京!\r\n”//\r\n 表示换行

//写入时,使用带缓存的*Writer

writer := bufio.NewWriter(file)

for i := 0; i< 5; i++

writer.Writestring(str)

//因为 writer 是带缓存,因此在调用 Writerstring 方法时,其实

//内容是先写入到缓存的,所以需要调用 Flush 方法,将缓冲的数据

//真正写入到文件中, 否则文件中会没有数据!!!

writer.Flush

相关文章
|
3月前
|
算法 C语言
C语言中的文件操作技巧,涵盖文件的打开与关闭、读取与写入、文件指针移动及注意事项
本文深入讲解了C语言中的文件操作技巧,涵盖文件的打开与关闭、读取与写入、文件指针移动及注意事项,通过实例演示了文件操作的基本流程,帮助读者掌握这一重要技能,提升程序开发能力。
203 3
|
4月前
|
Java
Java开发如何实现文件的移动,但是在移动结束后才进行读取?
【10月更文挑战第13天】Java开发如何实现文件的移动,但是在移动结束后才进行读取?
109 2
|
9月前
|
C语言
C 语言文件处理全攻略:创建、写入、追加操作解析
在 C 语言中,您可以通过声明类型为 FILE 的指针,并使用 fopen() 函数来创建、打开、读取和写入文件:
293 0
|
C++
19.【c++基础篇.三个文件实现】
19.【c++基础篇.三个文件实现】
88 0
|
前端开发
前端学习笔记202305学习笔记第二十四天-文件追加写入
前端学习笔记202305学习笔记第二十四天-文件追加写入
69 0
|
前端开发 JavaScript 算法
ChatGPT工作提效之layedit上传多附件的解决方案(layedit赋值、layui.js底层修改、追加模式多附件上传)
ChatGPT工作提效之layedit上传多附件的解决方案(layedit赋值、layui.js底层修改、追加模式多附件上传)
359 0
|
前端开发
前端学习案例1-对象的拷贝方式
前端学习案例1-对象的拷贝方式
63 0
前端学习案例1-对象的拷贝方式
|
Java 程序员 Scala
包的使用细节和注意事项1|学习笔记
快速学习包的使用细节和注意事项1。
117 0
包的使用细节和注意事项1|学习笔记
|
开发者 Python Windows
文件的读取方式 | 学习笔记
快速学习 文件的读取方式
105 0
文件的读取方式 | 学习笔记
HDFSAPI编程源码-文件创建操作
HDFSAPI编程源码-文件创建操作