成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

讓我們一起聊聊文件的操作

開發 架構
文件是保存數據的地方,是數據源的一種,比如大家經常使用的word文檔、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存數據,它既可以保存一張圖片,也可以保持視頻,聲音...

文件

【1】文件是什么?

文件是保存數據的地方,是數據源的一種,比如大家經常使用的word文檔、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存數據,它既可以保存一張圖片,也可以保持視頻,聲音...

【2】os包下的File結構體封裝了對文件的操作:

【3】File結構體---打開文件和關閉文件:

(1)打開文件,用于讀取:(函數)

傳入一個字符串(文件的路徑),返回的是文件的指針,和是否打開成功

(2)關閉文件:(方法)

使文件不能用于讀寫。它返回可能出現的錯誤

【4】案例:

package main

import(
	"fmt"
	"os"
)

func main()  {
	//打開文件:
	file,err := os.Open("D:/test.txt")
	if err != nil {
		fmt.Println("文件打開出錯,對應錯誤為:",err)
	}
	//沒有出錯,輸出文件:
	fmt.Println("文件=v%",file)
	//.........一系列操作
	//關閉文件:
	err2 := file.Close()
	if err2 != nil {
		fmt.Println("關閉失敗!")
	}
}

io的引入

【1】IO流對文件進行操作:

讀取文件(一次性)

【1】讀取文件的內容并顯示在終端(使用ioutil一次將整個文件讀入到內存中),這種方式適用于文件不大的情況。相關方法和函數(ioutil.ReadFile)

【2】案例:

package main

import(
	"fmt"
	"io/ioutil"
)

func main()  {
	//備注:在下面的程序中不需要進行 Open\Close操作,因為文件的打開和關閉操作被封裝在ReadFile函數內部了
	//讀取文件:
	content,err := ioutil.ReadFile("D:/test.txt")
	if err != nil {
		fmt.Println("讀取錯誤,錯誤為:",err)
	}
	//如果讀取成功,將內容顯示在終端即可:
	//fmt.Printf("%v",content)
	fmt.Printf("%v",string(content))
}

讀取文件(帶緩沖區)

【1】讀取文件的內容并顯示在終端(帶緩沖區的方式-4096字節),適合讀取比較大的文件,使用os.Open,file.Close,bufio.NewReader(),reader.ReadString函數和方法

【2】案例:

package main

import(
	"fmt"
	"io"
	"os"
	"bufio"
)

func main()  {
	file,err := os.Open("D:/test.txt")
	if err != nil {
		fmt.Println("打開文件失敗,err=:",err)
	}

	//當函數退出時,讓file關閉,防止內存泄露:
	defer file.Close()

	//創建一個流:
	reader := bufio.NewReader(file)
	//讀取操作:
	for{
		//讀取到一個換行就結束
		str,err := reader.ReadString('\n')
		//io.EOF 表示已經讀取到文件的結尾
		if err == io.EOF {
			break
		}
		//如果沒有讀取到文件結尾的話,就正常輸出文件內容即可:
		fmt.Println(str)
	}
	//結束:
	fmt.Println("文件讀取成功,并且全部讀取完畢")
}

寫入文件

【1】打開文件操作:

三個參數含義:

(1)要打開的文件的路徑

(2)文件打開模式(可以利用"|"符號進行組合)

(3)權限控制(linux/unix系統下才生效,windows下設置無效)- 0666

【2】案例:

package main

import(
	"fmt"
	"os"
	"bufio"
)

func main()  {
	//寫入文件操作:
	//打開文件:
	file,err := os.OpenFile("D:/test.txt",os.O_RDWR | os.O_APPEND | os.O_CREATE,0666)
	if err != nil {
		fmt.Printf("打開文件失敗",err)
		return
	}

	defer file.Close()

	//寫入文件操作:---》IO流---》緩沖輸出流(帶緩沖區)
	writer := bufio.NewWriter(file)
	for i := 0; i < 10; i++ {
		writer.WriteString("你好 菜園子\n")
	}
	//流帶緩沖區,刷新數據--->真正寫入文件中:
	writer.Flush()
	s := os.FileMode(0666).String()
	fmt.Println(s)
}

文件復制操作

案例

package main

import(
	"io/ioutil"
	"fmt"
)

func main()  {
	//定義源文件:
	filePath := "D:/test.txt"
	//定義目標文件:
	newPath := "D:/test_copy.txt"

	//對文件進行讀取:
	content,err := ioutil.ReadFile(filePath)
	if err != nil {
		fmt.Printf("打開文件失敗",err)
		return
	}

	 //寫出文件:
	err = ioutil.WriteFile(newPath,content,0666)
	if err != nil {
		fmt.Println("寫出失敗")
	}
}
責任編輯:武曉燕 來源: 今日頭條
相關推薦

2021-08-27 07:06:10

IOJava抽象

2022-02-14 07:03:31

網站安全MFA

2022-06-26 09:40:55

Django框架服務

2021-07-31 11:40:55

Openresty開源

2022-08-01 07:57:03

數組操作內存

2021-11-09 23:54:19

開發SMI Linkerd

2022-12-05 09:10:21

2021-11-04 06:58:31

CSS性能設備

2022-08-30 13:48:16

LinuxMySQL內存

2022-03-15 20:18:35

單元測試工具

2021-10-26 09:55:52

CAP理論分布式

2022-09-22 08:06:29

計算機平板微信

2022-03-31 18:59:43

數據庫InnoDBMySQL

2021-12-29 08:27:05

ByteBuffer磁盤服務器

2022-03-08 17:52:58

TCP格式IP

2023-04-26 00:19:18

AICSI-RSChatGPT

2021-11-26 07:00:05

反轉整數數字

2021-07-15 07:23:28

Singlefligh設計

2022-02-14 10:16:22

Axios接口HTTP

2016-09-06 10:39:30

Dell Techno
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美激情精品久久久久久 | 亚洲精品大片 | 全免费a级毛片免费看视频免 | 国内自拍偷拍一区 | 久久久久中文字幕 | 亚洲综合无码一区二区 | 亚洲综合视频 | 亚洲精品一区国语对白 | 成人精品一区二区三区 | 成人激情视频网 | 在线观看一区 | 日韩欧美在线不卡 | 午夜丰满少妇一级毛片 | 久久躁日日躁aaaaxxxx | 中文字幕一区在线观看视频 | 日本三级电影免费观看 | 国产成人精品久久 | 中文字幕在线一区 | 日韩在线不卡视频 | 欧美一区二区在线免费观看 | 欧美中文字幕一区二区 | 噜噜噜噜狠狠狠7777视频 | 国产精品国产a级 | 日韩精品久久一区二区三区 | 日本午夜一区 | 伊人伊成久久人综合网站 | 亚洲性在线 | 中文字幕a√| 欧美日韩电影一区二区 | 精品久久99 | 日本激情视频在线播放 | 国产精品1区 | 国产婷婷精品 | 精品国产乱码久久久久久牛牛 | 欧美中文字幕一区二区三区亚洲 | 毛片99| cao在线| 国产99精品 | 国产精品视频一二三区 | 国产黄色在线观看 | 黄色片免费看视频 |