go 檔案讀寫操作

2022-07-31 15:42:16 字數 3314 閱讀 2006

func fileread(path string) 

rb := make(byte, 1024, 1024)

for

fmt.println(string(rb[:n]))

} err = file.close()

if err != nil

}func bufio(path string)

defer file.close()

/* const (

defaultbufsize = 4096 //預設的緩衝區為4096

) */

// 建立乙個 *reader ,是帶緩衝區的

reader := bufio.newreader(file)

// 迴圈讀取檔案的內容

for

// 輸出內容,如果是用println會多出現乙個空行,println自帶換行

fmt.printf(str)

} fmt.println("檔案讀取結束!")

}func ioutil(path string)

// 把檔案內容讀取到終端

fmt.println(string(filestr))

// 沒有開啟和關閉檔案控制代碼,因為兩個操作都封裝到readfile函式內部

}

func writehello(path string) 

defer file.close()

str := "hello,sonfer!\r\n"

// 寫入時 使用帶快取的 *writer

writer := bufio.newwriter(file)

for i := 0; i < 5; i++

// 因為writer是帶快取,因此呼叫writerstring方法時,

// 內容先寫到快取的,所以呼叫flush方法,將緩衝資料

// 真實寫入到檔案中,否則檔案中沒有資料!

writer.flush()

} // 開啟檔案時追加內容,如果是os.o_trunc則清空檔案內容在寫入

if err != nil

defer file.close()

str := "追加的!\r\n"

writer := bufio.newwriter(file)

for i := 0; i < 7; i++

writer.flush()

}

package main

import (

"bufio"

"fmt"

"io"

"os"

)func readwrite(srcpaht, despath string)

rwfile, err := os.openfile(despath, os.o_rdwr|os.o_create|os.o_trunc, 0644)

if err != nil

defer rdfile.close()

defer rwfile.close()

// 建立讀寫緩衝區

reader := bufio.newreader(rdfile)

writer := bufio.newwriter(rwfile)

for

// 緩衝區中寫檔案

writer.writestring(str)

} fmt.println("over!")

}func main()

如果返回的錯誤為nil,說明檔案或資料夾存在

如果返回的錯誤型別使用os.isnotexist()判斷為true,說明檔案或資料夾不存在

如果返回的錯誤為其它型別,則不確定是否在存在

func pathexists(path string) (bool, error) 

if os.isnotexist(err)

return false, err

}

package main

import (

"bufio"

"errors"

"fmt"

"io"

"os"

)func fileexit(path string) (bool, error)

if os.isnotexist(err)

return false, err

}// 編寫乙個拷貝函式,接收兩個檔案路徑,原始檔存在,目標檔案不存在

func copyfile(destfile, srcfile string) (written int64, err error)

// 判斷目標檔案是否存在,0為隨意數字

destfiletrue, err := fileexit(destfile)

if destfiletrue == true

// 通過srcfile獲取 reader

readfile, err := os.open(srcfile)

if err != nil

defer readfile.close()

reader := bufio.newreader(readfile)

//通過 destfile, 獲取到 writer

writefile, err := os.openfile(destfile, os.o_rdonly|os.o_create, 0644)

if err != nil

defer writefile.close()

writer := bufio.newwriter(writefile)

return io.copy(writer, reader)

}func main() else

}

統計字元數量

package main

import (

"bufio"

"fmt"

"io"

"os"

)type charcount struct

func main()

defer rdfile.close()

reader := bufio.newreader(rdfile)

for

fmt.printf(str)

for _, v := range rune(str)

} }fmt.printf("字元的個數為:%v,數字的個數為:%v,空格的個數為:%v,其他字元為:%v", count.chcount, count.numcount, count.spacecount, count.othercount)

}

Go 檔案讀寫

看了下go語言的標準庫,最開始看了下io庫想著看看go語言提供的函式如何實現檔案的讀寫,粗略的看了下就想著使用go語言提供的方法讀寫檔案試下吧。讀檔案,示例 package main import fmt io ioutil os const file test.txt read file func...

go語言讀寫檔案操作方法

package main import bufio fmt io os 寫 func writefile path string 使用完畢,需要關閉檔案 defer f.close var buf string for i 0 i 5 i fmt.println n n 讀檔案內容方法 func r...

GO 檔案的讀寫

首先寫乙個檔案 package main import os fmt func writefile path string 寫檔案 var buf string for i 0 i 10 i n n 關閉檔案 defer f.close func main 執行完成後就會在程式的同目錄生成乙個dem...