当前位置:网站首页>[go ~ 0 to 1] read, write and create files on the sixth day
[go ~ 0 to 1] read, write and create files on the sixth day
2022-07-04 18:42:00 【Autumn sunset】
1. Opening and closing of files
1.1 os.open
os.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 :
| Pattern | meaning |
|---|---|
| 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 bufio
reader := 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)
}
2.3 ioutil Read the entire file at once
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
Use bufio Be sure to call refresh
// 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()

3.3 ioUtil Tool class
// 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)
}
边栏推荐
- 【2022年江西省研究生数学建模】冰壶运动 思路分析及代码实现
- 表情包坑惨职场人
- 2022年全国CMMI认证补贴政策|昌旭咨询
- General environmental instructions for the project
- 庆贺!科蓝SUNDB与中创软件完成七大产品的兼容性适配
- Halcon模板匹配
- Is it safe to open an account online? is that true?
- Tutorial on the use of Huawei cloud modelarts (with detailed illustrations)
- How is the entered query SQL statement executed?
- People in the workplace with a miserable expression
猜你喜欢

Li Kou brush question diary /day1/2022.6.23

Digital "new" operation and maintenance of energy industry

What if the self incrementing ID of online MySQL is exhausted?

Nature microbiology | viral genomes in six deep-sea sediments that can infect Archaea asgardii
![[HCIA continuous update] WAN technology](/img/31/8e9ed888d22b15eda5ddcda9b8869b.png)
[HCIA continuous update] WAN technology

Scala基础教程--15--递归

Make a grenade with 3DMAX

Halcon template matching

DB engines database ranking in July 2022: Microsoft SQL Server rose sharply, Oracle fell sharply

力扣刷题日记/day7/2022.6.29
随机推荐
The controversial line of energy replenishment: will fast charging lead to reunification?
Stars open stores, return, return, return
Once the "king of color TV", he sold pork before delisting
Scala基础教程--19--Actor
How is the entered query SQL statement executed?
Halcon template matching
蓝桥:合根植物
Tutorial on the use of Huawei cloud modelarts (with detailed illustrations)
Li Kou brush question diary /day1/2022.6.23
爬虫(6) - 网页数据解析(2) | BeautifulSoup4在爬虫中的使用
Li Kou brush question diary /day7/6.30
The block:usdd has strong growth momentum
[210] usage of PHP delimiter
How to improve development quality
[HCIA continuous update] WAN technology
俄罗斯 Arenadata 发布基于PostgreSQL的产品
1、 Introduction to C language
Li Kou brush question diary /day5/2022.6.27
机器学习概念漂移检测方法(Aporia)
Russia arena data releases PostgreSQL based products