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

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

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

相关文章
|
13天前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
78 34
|
24天前
|
算法 C语言
C语言中的文件操作技巧,涵盖文件的打开与关闭、读取与写入、文件指针移动及注意事项
本文深入讲解了C语言中的文件操作技巧,涵盖文件的打开与关闭、读取与写入、文件指针移动及注意事项,通过实例演示了文件操作的基本流程,帮助读者掌握这一重要技能,提升程序开发能力。
81 3
|
7月前
|
C语言
C 语言文件处理全攻略:创建、写入、追加操作解析
在 C 语言中,您可以通过声明类型为 FILE 的指针,并使用 fopen() 函数来创建、打开、读取和写入文件:
270 0
|
7月前
|
存储 安全 数据处理
文件I/O:基础与实战
文件I/O:基础与实战
|
存储 NoSQL 算法
文件上传下载系列——如何实现文件秒传
文件上传下载系列——如何实现文件秒传
|
C++
19.【c++基础篇.三个文件实现】
19.【c++基础篇.三个文件实现】
80 0
|
前端开发 JavaScript 算法
ChatGPT工作提效之layedit上传多附件的解决方案(layedit赋值、layui.js底层修改、追加模式多附件上传)
ChatGPT工作提效之layedit上传多附件的解决方案(layedit赋值、layui.js底层修改、追加模式多附件上传)
333 0
|
开发者 Python Windows
文件的读取方式 | 学习笔记
快速学习 文件的读取方式
100 0
文件的读取方式 | 学习笔记
|
Shell Python
Fabric 源码学习:如何实现批量管理远程服务器?
简单来说,它是一个用 Python 开发的轻量级的远程系统管理工具,在远程登录服务器、执行 Shell 命令、批量管理服务器、远程部署等场景中,十分好用。 Fabric 2 是其最新的大版本,跟早前的 Fabric 1 有挺大的不同,更加好用了,但是没填上的坑也挺多的……
198 0
Fabric 源码学习:如何实现批量管理远程服务器?
|
Python
【通用文件操作】文件自动整理
今天我们就带大家来实现一下文件自动整理的操作。在我们日常生活中,文件总是杂乱无章的,这个时候就需要我们整理一下。但是文件太多的话整理起来是非常麻烦的,因此我们今天就来用Python实现文件的自动整理。
152 0