创建文件并写入内容 | 学习笔记

简介: 快速学习创建文件并写入内容

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

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


创建文件并写入内容

 

内容介绍

一、基本介绍

二、基本应用实例

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

 

一、基本介绍

首先要用到 fuc OpenFile,它是在os包里的文件。

说明: os.0penFile 是一个更一般性的文件打开函数,它会使用指定的选项(如O_RDONLY 等)、指定的模式(如0666等)打开指定名称的文件。如果操作成功,返回的文件对象可用于1/O。如果出错,错误底层类型是*PathErroro。

这个函数有以下三个参数:

1.name string。要把文件的内容写入,是文件的路径。

2.flag int, 代表打开文件的方式,可以组合。一共有以下几种方式。

const

O_RRONLY int = syscall.O_RDONLY //只读模式打开文件

O_WRONLYint = syscall.0_WRONLY //只写模式打开文件

O_RDWR int = syscall.0_RDWR //读写模式打开文件

O_APPEND int = syscall.O_APPEND//写操作时将数据附加到文件尾部

O_CREATE int = syscall.O_CREAT //如果不存在将创建一个新文件

O_EXCL int = syscall.O_EXCL // 和 O CREATE 配合使用,文件必须不存在

O_SYNC int = syscall.O_SYNC //打开文件用于同步 I/0

O_TRUNC int = syscall.0_TRUNC//如果可能,打开时清空文件

3. perm FileMode

权限控制(linux)

打开 type filemode,准确的讲,它以是的方式打开,有三个占位符。

第一个代表文件所有者的权限,第二个代表其他组,文件所在组的对文件所有的权限,还有一个是其他组所在用户的权限。

r 是用4表示的

W 是用2表示的

x 是用1表示的

在 windows 下是无用的,详情:参考尚硅谷-linux 课程。就看其中一个章节即可。

FileMode 可以指定文件是用什么权限进行控制的。文件会返回两个参数:

1. file *File, 文件指针,也就是文件句柄。

2. err error),如果打开错误,会返回一个 error 值。

 

二、基本应用实例

1.创建一个新文件,写入内容5句"hello,Gardon"。此时写的采用的是带缓存的reader,这个 writer 可以通过带缓存,来完成带缓存的内容。

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

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

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

使用os.OpenFile(), bufio.NewWriter(),*Writer 的方法 WriteString 完成上面的任务.

 

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

第一种方式的代码实现:

新建一个文件夹

package main

import(

"fmt”

"bufio"

"os"

func main()(

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

//1.打开文件 d:/abc.txt

filePath :=“d:/abc.txt"

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

if err != nil t

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

return

打开成功后,

//及时关闭 file 句柄

defer file.Close()

//准备写入5句“hello, Gardon"

str :="hello,Gardon\n"//\n 表示换行

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

writer := bufio.NewWriter(file)

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

writer.Writerstring(str)

//因为 writer 是带缓存,因此因此在调用 Writerstring 方法时,其实//内容是先写入到缓存的

打开 writer 的源代码,

type  Writer struct

err    error

buf   []byte

n     int

Wr    io. Writer

可以看出 writer 结构体中,先把内容写到 buf 里,然后搜索 flush,

//Flush writes any buffered data to the underlying io. Writer.

func(b*Writer)Flush()error

可以看出 flush 的作用,只有通过 flush,才能真正的将它写入到文件里去。

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

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

//真正写入到文件中, 否则文件中会没有数据!!!
writer . Flush()

修改问题,并运行,查看是否写入。此时写入成功。

相关文章
|
8月前
|
C#
C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录
C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录
106 0
|
8月前
|
C# Python
C# 笔记1 - 操作目录
C# 笔记1 - 操作目录
68 0
|
8月前
|
容器
查看文件内容命令
查看文件内容命令
63 0
|
8月前
|
Windows
推荐:如何批量根据PDF文件名批量查找PDF文件,复制到指定地方保存,通过文件名批量复制文件,按照文件名批量复制文件,根据文件名批量提取文件
该文介绍了一个批量查找PDF文件(不限于找PDF)的工具,用于在多级文件夹中快速查找并复制特定文件。通过下载提供的软件,用户可以加载PDF库,输入文件名列表,设置操作参数(如保存路径、复制或删除)及搜索模式。软件能高效执行,例如在1.1秒内完成对数千文件中的37个目标文件的复制,显著提升了工作效率,避免了手动逐个查找和复制的繁琐。
644 0
|
前端开发
前端学习笔记202305学习笔记第二十四天-创建文件目录
前端学习笔记202305学习笔记第二十四天-创建文件目录
82 0
PHP快速入门11-文件操作,附写入文件、文件重命名等20个高频使用案例
PHP快速入门与实战,在PHP中,文件操作是非常重要的一个知识点。它允许我们对服务器上的文件进行读取、写入、修改等操作。在PHP中,我们可以通过一系列的函数来完成这些任务。fopen():打开文件fclose():关闭文件fwrite():写入数据到文件fread():从文件读取数据。
108 0
|
XML 数据格式
小工具:批量替换文件夹下所有文件内容中的指定词
函数作用:找出某文件夹下的包含指定关键词文件列表,并将关键字修改为目标字并将新内容保存至源文件
400 0
|
Linux
(二)目录及文件操作
命令:ls[选项][目录/文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。 对于文件,将列出文件名及其他
165 0
(二)目录及文件操作
|
架构师 开发者
目录和导语|学习笔记
快速学习目录和导语。
110 0
|
Java 开发者
文件保存|学习笔记
快速学习文件保存
140 0
文件保存|学习笔记

热门文章

最新文章

下一篇
开通oss服务