当前位置:网站首页>Understand the reading, writing and creation of files in go language
Understand the reading, writing and creation of files in go language
2022-07-04 20:29:00 【1024 questions】
1. Opening and closing of files
1.1 os.open
1.2 os.OpenFile() Open file in specified mode
2. File reading
2.1 Read the data in the file by opening the file
2.2 Use bufio Read the whole line of the file
3. Write file operation
3.1 file.Write And file.WriteString
3.2 bufio.NewWriter
3.3 ioUtil Tool class
1. Opening and closing of files 1.1 os.openos.open Function can open a file call close() Method Close file
// Open file open, err := os.Open("./1.text")if err != nil {// Print exception information fmt.Println("open file err", err)}fmt.Println(" File acquisition completed ")// No exception occurred , Close file open.Close()
To prevent forgetting to close the file , Usually, the code to close the file is written in defer in
// Open file open, err := os.Open("./1.text")defer func() {if open != nil {// Close file open.Close()}}()if err != nil {// Print exception information fmt.Println("open file err", err)}fmt.Println(" File acquisition completed ")
1.2 os.OpenFile() Open file in specified mode func OpenFile(name string, flag int, perm FileMode) (*File, error) { ...}
among :
name: The name of the file to open flag: Open file mode . There are several modes :
os.O_WRONLY | Just write |
os.O_CREATE | create a file |
os.O_RDONLY | read-only |
os.O_RDWR | Reading and writing |
os.O_TRUNC | Empty |
os.O_APPEND | Additional |
perm: File permissions , An octal number .r( read )04,w( Write )02,x( perform )01.
2. File reading 2.1 Read the data in the file by opening the file// First you need to open a file open, err := os.Open("./1.text")defer func() {e := recover()if e != nil {fmt.Println(" An exception occurred when opening the file ", e)}}()if err != nil {// If there is any abnormality There's no need to go down Throw out panic(err)}// If there is no abnormality // establish Byte slice bytes := make([]byte, 1024)defer func() {e := recover()if e != nil {fmt.Println(" An exception occurred while reading the file ", e)}}()for {// Circle reading _, err := open.Read(bytes)if err != nil {panic(err)}// Print the results fmt.Println(string(bytes))}
2.2 Use bufio Read the whole line of the file bufio Is in file It encapsulates a layer of API , Support more functions
// Similarly, first open a file file, err := os.Open("./1.text")defer recover()if err != nil {panic(" An exception occurred while opening the file ")}// Encapsulated in the bufioreader := bufio.NewReader(file)defer recover()for {// Read the specified string and change to another line line, _, err := reader.ReadLine()if err != nil {if err == io.EOF {fmt.Println(" The file is read and written ")break}panic(" File reading exception ")}fmt.Println(string(line))}fmt.Println(" End of program running ")func main() {file, err := os.OpenFile("xx.txt", os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0666)}
3. Write file operation Whether it is file reading or file writing You need to open the file first Do it again
3.1 file.Write And file.WriteString// So let's open the file O_RDWR read-write permission O_TRUNC Empty files 0 Start with octal 666 Express Current user Current group Other users Read and write permissions file, err := os.OpenFile("1.text", os.O_RDWR|os.O_TRUNC, 0666)if err != nil {fmt.Printf(" Exception in opening file %v", err)}defer file.Close()// return Bytes written write, err := file.Write([]byte(" Test file write \n"))file.WriteString(" Write the entire string at once ")if err != nil {fmt.Println(err)}fmt.Println(write)
3.2 bufio.NewWriter// Based on cache operation file, err := os.OpenFile("2.text", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666)if err != nil {panic(err)}defer func() {file.Close()if e := recover(); e != nil {fmt.Printf(" abnormal : Exception in opening file %v", e)}}()// Use bufio Based on cache operation io flow // Need to One io Interface package Writer Interface implementation class and file It's time to Method writer := bufio.NewWriter(file)writer.WriteString(" Write cache string contents 2")// You need to refresh the data in the cache to the hard disk writer.Flush()
// Use tool class Open file , Write the file at one go err := ioutil.WriteFile("3.text", []byte(" Tool class writes content "), 0666)if err != nil {fmt.Println(" The program runs abnormally ", err)}
This is the article about understanding Go This is the article about reading, writing and creating files in the language , More about Go Language File read and write Please search the previous articles of SDN or continue to browse the relevant articles below. I hope you will support SDN more in the future !
边栏推荐
- Dark horse programmer - software testing - stage 07 2-linux and database -09-24-linux command learning steps, wildcards, absolute paths, relative paths, common commands for files and directories, file
- 多表操作-内连接查询
- [today in history] July 4: the first e-book came out; The inventor of magnetic stripe card was born; Palm computer pioneer was born
- 多表操作-外连接查询
- 做社交媒体营销应该注意些什么?Shopline卖家的成功秘笈在这里!
- 精选综述 | 用于白内障分级/分类的机器学习技术
- C server log module
- [QNX Hypervisor 2.2用户手册]6.3.1 工厂页和控制页
- Thinking on demand development
- The company needs to be monitored. How do ZABBIX and Prometheus choose? That's the right choice!
猜你喜欢
输入的查询SQL语句,是如何执行的?
Chrome development tool: what the hell is vmxxx file
Creation of JVM family objects
c# .net mvc 使用百度Ueditor富文本框上传文件(图片,视频等)
Form组件常用校验规则-1(持续更新中~)
Ziguang zhanrui completed the first 5g R17 IOT NTN satellite on the Internet of things in the world
Every time I look at the interface documents of my colleagues, I get confused and have a lot of problems...
Write it down once Net analysis of thread burst height of an industrial control data acquisition platform
On communication bus arbitration mechanism and network flow control from the perspective of real-time application
Cbcgpprogressdlg progress bar used by BCG
随机推荐
Kotlin inheritance
c# . Net MVC uses Baidu ueditor rich text box to upload files (pictures, videos, etc.)
#夏日挑战赛#带你玩转HarmonyOS多端钢琴演奏
C # use stopwatch to measure the running time of the program
Regular replacement [JS, regular expression]
2022 Health Exhibition, Beijing Health Expo, China Health Exhibition, great health exhibition November 13
Huawei Nova 10 series supports the application security detection function to build a strong mobile security firewall
On communication bus arbitration mechanism and network flow control from the perspective of real-time application
Lingyun going to sea | 10 jump &huawei cloud: jointly help Africa's inclusive financial services
Qt编写物联网管理平台38-多种数据库支持
ACM组合计数入门
2022 Health Exhibition, health exhibition, Beijing Great Health Exhibition and health industry exhibition were held in November
Abc229 summary (connected component count of the longest continuous character graph in the interval)
What does the neural network Internet of things mean? Popular explanation
Employment prospects of neural network Internet of things application technology [welcome to add]
Kotlin basic data type
Informatics Olympiad 1336: [example 3-1] find roots and children
YOLOv5s-ShuffleNetV2
Creation of JVM family objects
Lingyun going to sea | Murong Technology & Huawei cloud: creating a model of financial SaaS solutions in Africa