日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
讓我們一起聊聊文件的操作

文件

【1】文件是什么?

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

創(chuàng)新互聯(lián)成立與2013年,先為金壇等服務(wù)建站,金壇等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為金壇企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

【2】os包下的File結(jié)構(gòu)體封裝了對(duì)文件的操作:

【3】File結(jié)構(gòu)體---打開(kāi)文件和關(guān)閉文件:

(1)打開(kāi)文件,用于讀?。海ê瘮?shù))

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

(2)關(guān)閉文件:(方法)

使文件不能用于讀寫(xiě)。它返回可能出現(xiàn)的錯(cuò)誤

【4】案例:

package main

import(
	"fmt"
	"os"
)

func main()  {
	//打開(kāi)文件:
	file,err := os.Open("D:/test.txt")
	if err != nil {
		fmt.Println("文件打開(kāi)出錯(cuò),對(duì)應(yīng)錯(cuò)誤為:",err)
	}
	//沒(méi)有出錯(cuò),輸出文件:
	fmt.Println("文件=v%",file)
	//.........一系列操作
	//關(guān)閉文件:
	err2 := file.Close()
	if err2 != nil {
		fmt.Println("關(guān)閉失??!")
	}
}

io的引入

【1】IO流對(duì)文件進(jìn)行操作:

讀取文件(一次性)

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

【2】案例:

package main

import(
	"fmt"
	"io/ioutil"
)

func main()  {
	//備注:在下面的程序中不需要進(jìn)行 Open\Close操作,因?yàn)槲募拇蜷_(kāi)和關(guān)閉操作被封裝在ReadFile函數(shù)內(nèi)部了
	//讀取文件:
	content,err := ioutil.ReadFile("D:/test.txt")
	if err != nil {
		fmt.Println("讀取錯(cuò)誤,錯(cuò)誤為:",err)
	}
	//如果讀取成功,將內(nèi)容顯示在終端即可:
	//fmt.Printf("%v",content)
	fmt.Printf("%v",string(content))
}

讀取文件(帶緩沖區(qū))

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

【2】案例:

package main

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

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

	//當(dāng)函數(shù)退出時(shí),讓file關(guān)閉,防止內(nèi)存泄露:
	defer file.Close()

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

寫(xiě)入文件

【1】打開(kāi)文件操作:

三個(gè)參數(shù)含義:

(1)要打開(kāi)的文件的路徑

(2)文件打開(kāi)模式(可以利用"|"符號(hào)進(jìn)行組合)

(3)權(quán)限控制(linux/unix系統(tǒng)下才生效,windows下設(shè)置無(wú)效)- 0666

【2】案例:

package main

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

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

	defer file.Close()

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

文件復(fù)制操作

案例

package main

import(
	"io/ioutil"
	"fmt"
)

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

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

	 //寫(xiě)出文件:
	err = ioutil.WriteFile(newPath,content,0666)
	if err != nil {
		fmt.Println("寫(xiě)出失敗")
	}
}

網(wǎng)站名稱:讓我們一起聊聊文件的操作
本文鏈接:http://www.5511xx.com/article/dhosicd.html