Heim > Artikel > Backend-Entwicklung > Mehrere Methoden zum Lesen und Schreiben von Dateien in Golang
Mehrere Methoden zum Lesen und Schreiben von Dateien in Golang
Die gelesenen Dateien werden in Datei/Test abgelegt: Das heißt, der Test unter dem Dateipaketdatei, weitere Dateien darin schreiben
Methode eins zum Lesen der Datei: Verwenden Sie ioutil.ReadFile, um direkt aus der Datei in []Byte zu lesen
Verwandte Empfehlungen: Golang-Tutorial
func Read0() (string){ f, err := ioutil.ReadFile("file/test") if err != nil { fmt.Println("read fail", err) } return string(f) }
Datei lesen Methode zwei: Zuerst aus der Datei in die Datei lesen, dann aus der Datei in buf lesen und dann buf an das letzte []Byte anhängen
func Read1() (string){ //获得一个file f, err := os.Open("file/test") if err != nil { fmt.Println("read fail") return "" } //把file读取到缓冲区中 defer f.Close() var chunk []byte buf := make([]byte, 1024) for { //从file读取到buf中 n, err := f.Read(buf) if err != nil && err != io.EOF{ fmt.Println("read buf fail", err) return "" } //说明读取结束 if n == 0 { break } //读取到最终的缓冲区中 chunk = append(chunk, buf[:n]...) } return string(chunk) //fmt.Println(string(chunk)) }
Methode drei zum Lesen von Dateien: Zuerst von Datei zu Datei lesen, dann von Datei zu Reader lesen, vom Reader zu buf lesen und schließlich wird buf an []Byte angehängt
//先从文件读取到file, 在从file读取到Reader中,从Reader读取到buf, buf最终追加到[]byte,这个排第三 func Read2() (string) { fi, err := os.Open("file/test") if err != nil { panic(err) } defer fi.Close() r := bufio.NewReader(fi) var chunks []byte buf := make([]byte, 1024) for { n, err := r.Read(buf) if err != nil && err != io.EOF { panic(err) } if 0 == n { break } //fmt.Println(string(buf)) chunks = append(chunks, buf...) } return string(chunks) //fmt.Println(string(chunks)) }
Vierte Möglichkeit, Dateien zu lesen: In Datei lesen und dann mit ioutil die Datei direkt in []Byte einlesen
//读取到file中,再利用ioutil将file直接读取到[]byte中, 这是最优 func Read3() (string){ f, err := os.Open("file/test") if err != nil { fmt.Println("read file fail", err) return "" } defer f.Close() fd, err := ioutil.ReadAll(f) if err != nil { fmt.Println("read to fd fail", err) return "" } return string(fd) }
PHP-Chinesisch Es gibt Viele Einführungs-Programmier-Tutorials im Internet, willkommen zum Lernen!
Das obige ist der detaillierte Inhalt vonMehrere Methoden zum Lesen und Schreiben von Dateien in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!