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

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

开发者学堂课程【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

相关文章
|
2月前
文件存取方式
顺序存取方式和随机存取方式: 顺序存取就是从上往下,一笔一笔读取文件的内容。写入数据时,将数据附加在文件的末尾。这种存取方式常用于文本文件。 随机存取方式多半以二进制文件为主。它会以一个完整的单位来进行数据的读取和写入,通常以结构为单位。
|
3月前
|
Java
Java开发如何实现文件的移动,但是在移动结束后才进行读取?
【10月更文挑战第13天】Java开发如何实现文件的移动,但是在移动结束后才进行读取?
88 2
|
8月前
|
C语言
C 语言文件处理全攻略:创建、写入、追加操作解析
在 C 语言中,您可以通过声明类型为 FILE 的指针,并使用 fopen() 函数来创建、打开、读取和写入文件:
277 0
|
6月前
|
前端开发 JavaScript Java
文本----简单编写文章的方法(中),后端接口的编写,自己编写好页面就上传到自己的服务器上,使用富文本编辑器进行编辑,想写好一个项目,先分析一下需求,再理一下实现思路,再搞几层,配好参数校验,lomb
文本----简单编写文章的方法(中),后端接口的编写,自己编写好页面就上传到自己的服务器上,使用富文本编辑器进行编辑,想写好一个项目,先分析一下需求,再理一下实现思路,再搞几层,配好参数校验,lomb
|
8月前
|
数据可视化 测试技术 API
阅读源码有哪些好方式与好步骤
阅读源码是理解软件工作原理的关键。首先,了解背景、目的和技术栈。从文件头部的文档注释开始,逐步深入到复杂代码。利用Git、调试器和分析工具辅助理解。保持批判性思维,质疑代码设计并验证理解。拆分代码块,画图展示结构,使用版本控制追踪变更。搜索、阅读文档、API和单元测试以深化理解。参与讨论,做笔记,回顾历史版本,了解上下文,并通过实践加强领悟。每个人的方法可能不同,关键是持续学习和适应。
72 1
|
存储 NoSQL 算法
文件上传下载系列——如何实现文件秒传
文件上传下载系列——如何实现文件秒传
|
C++
19.【c++基础篇.三个文件实现】
19.【c++基础篇.三个文件实现】
82 0
|
前端开发
前端学习笔记202305学习笔记第二十四天-文件追加写入
前端学习笔记202305学习笔记第二十四天-文件追加写入
65 0
|
开发者 Python Windows
文件的读取方式 | 学习笔记
快速学习 文件的读取方式
102 0
文件的读取方式 | 学习笔记
HDFSAPI编程源码-文件创建操作
HDFSAPI编程源码-文件创建操作