GO檔案操作詳解

2021-09-29 03:33:43 字數 2447 閱讀 5606

package main

// 1、匯入"os"包,建立,讀,寫檔案的函式都在該包

import (

"fmt"

"os"

)func main()

// 3、寫入檔案操作

count,err1 := fp.writestring("我去買些橘子,你就在此地,不要隨意走動")

if err1!=nil else

// 4、關閉檔案,如果開啟檔案不關閉,造成記憶體的浪費,程式開啟檔案的數量有上限

defer fp.close()

}(1)建立檔案:create()函式

①在建立檔案時,首先會判斷要建立的檔案是否存在,如果不存在,則建立,如果存在,會先將檔案中已有的資料清空;

②當檔案建立成功後,該檔案會預設的開啟,所以不用在執行開啟操作,可以直接向該檔案中寫入資料;

(2)寫入檔案:

方法一:writestring(引數為字串):方法預設返回兩個引數,寫入的資料長度和錯誤資訊;

count,err1 := fp.writestring("我去買些橘子,你就在此地,不要隨意走動")

方法二:write(引數為位元組切片)方法預設返回兩個引數,寫入的資料長度和錯誤資訊;

方法三:writeat(引數為位元組切片, 寫入位置):指定位置寫入資料,該方法預設返回兩個引數,寫入的資料長度和錯誤資訊

獲取檔案起始到結尾有多少個字元

方法① count,_ := fp.seek(0, io.seekend)

方法② count,_ := fp.seek(0, os.seek_end)

指定位置寫入

fp.writeat(byte("hello world"), count)

fp.writeat(byte("hahaha"), 0)

fp.writeat(byte("秀兒"), 19)

方法四:openfile():向已有檔案中追加資料

// 該方法預設返回兩個引數,寫入的資料長度和錯誤資訊

os.openfile(檔名,開啟方式,開啟許可權)

fp,err := os.openfile("d:/a.txt", os.o_rdwr, 6)

if err!=nil

fp.writestring("hello")

fp.writeat(byte("hello"),25)

defer fp.close()

總結:openfile(要開啟檔案的路徑, 開啟模式, 開啟許可權)

常見的模式有:

o_rdonly(唯讀模式),

o_wronly(只寫模式),

o_rdwr(可讀可寫模式),

許可權,取值範圍(0-7)

0:沒有任何許可權

1:執行許可權(如果是可執行檔案,是可以執行的)

2:寫許可權

3: 寫許可權與執行許可權

4:讀許可權

5: 讀許可權與執行許可權

6: 讀許可權與寫許可權

7: 讀許可權,寫許可權,執行許可權

(3)讀取檔案:

方法一:read()函式

// 在使用read()函式讀取檔案中的內容時,需要乙個切片型別

buf := make(byte, 1024*2) // 2k大小

// n 代表從檔案讀取內容的長度

n, err1 := fp.read(buf)

// 除了對其判斷是否出錯時以外,還要判斷是否讀到檔案末尾(這裡需要匯入io包)

if err1 != nil && err1 != io.eof

// read()函式將檔案的內容全部讀取出來,然後存放在切片中

fmt.println("buf=", string(buf[:n]))

方法二:open():唯讀方式開啟檔案

fp, err := os.open("d:/a.txt")

if err != nil

方法三:上面我們是將檔案的內容全部讀取出來,然後存放在切片中,我們也可以每次只讀取一行資料,需要用到bufio包的readbytes()函式;

① 開啟檔案

fp, err := os.open("d:/a.txt")

if err != nil

② 建立緩衝區:檔案緩衝區是用以暫時存放讀寫期間的檔案資料而在記憶體區預留的一定空間

r := bufio.newreader(fp)

③ 迴圈讀取檔案中的內容,直到檔案末尾位置

for

fmt.println("err=",err)}}

在使用readbytes( )函式時,傳遞的引數是『\n』,表示遇到』\n』就結束,所以使用了死迴圈(每迴圈一次,讀取一行資料),只有到檔案末尾了,

才退出整個迴圈。最後,將讀取的資料列印出來,注意readbytes( )返回的是位元組切片,所以在列印時要轉換成字串

④ 關閉檔案

defer fp.close()

go檔案操作

go語言支援的檔案操作很多 1 傳統的檔案操作 匯入檔案操作需要的包 import os f os.open filepath f.read byte f.close 這裡寫 片openfile,err os.open test.go 正確開啟檔案返回err nil 這裡如果檔案開啟異常,則丟擲錯誤...

go檔案操作

os.open 函式能夠開啟乙個檔案,返回乙個開啟的檔案物件和乙個err。對得到的檔案物件呼叫close 方法能夠關閉檔案 為了防止檔案忘記關閉,我們通常使用defer關閉檔案 是向作業系統要了乙個檔案io,如果程式沒有顯示的關閉檔案,就不會釋放這個檔案io,造成檔案不安全 func main 關閉...

Go 35 Go 檔案操作

基本介紹 檔案在程式中是以流的形式來操作的 流 資料在資料來源 檔案 和程式 記憶體 之間經歷的路徑 輸入流 讀檔案 資料從資料來源 檔案 到程式 記憶體 的路徑 輸出流 寫檔案 資料從程式 記憶體 到資料來源 檔案 的路徑 主要是os包裡的file的結構體來對檔案進行操作 file代表乙個開啟的檔...