在Go 中使用字串陣列讀寫文字檔案
在字串陣列中讀寫文字檔案是一種常見且方便的操作編程中的任務。本文探討了 Go 中是否存在這樣的功能,並提供了一個使用 Go1.1 中引入的 bufio.Scanner API 的範例解決方案。
bufio.Scanner 用於高效文件處理
Go 標準庫提供了 bufio.Scanner API,用於高效的文件處理和文字行解析。此 API 可以直接在檔案中讀取和寫入文字行。
範例用法
請考慮以下範例,示範如何使用bufio.Scanner 進行讀取和寫入寫入文字檔案:
package main import ( "bufio" "fmt" "log" "os" ) // readLines reads a file into a slice of lines. func readLines(path string) ([]string, error) { file, err := os.Open(path) if err != nil { return nil, err } defer file.Close() var lines []string scanner := bufio.NewScanner(file) for scanner.Scan() { lines = append(lines, scanner.Text()) } return lines, scanner.Err() } // writeLines writes a slice of lines to a file. func writeLines(lines []string, path string) error { file, err := os.Create(path) if err != nil { return err } defer file.Close() w := bufio.NewWriter(file) for _, line := range lines { fmt.Fprintln(w, line) } return w.Flush() } func main() { lines, err := readLines("foo.in.txt") if err != nil { log.Fatalf("readLines: %s", err) } for i, line := range lines { fmt.Println(i, line) } if err := writeLines(lines, "foo.out.txt"); err != nil { log.Fatalf("writeLines: %s", err) } }
此範例示範如何使用bufio.Scanner 讀取行「foo.in.txt」並將它們寫入「foo.out.txt」。 readLines 函數將整個檔案讀取到記憶體中,而 writeLines 函數將行寫入輸出檔。
透過使用 bufio.Scanner API,您可以輕鬆地在 Go 中讀寫文字文件,使其成為用於處理基於文字的資料的便利工具。
以上是Go中如何使用字串陣列高效讀寫文字檔?的詳細內容。更多資訊請關注PHP中文網其他相關文章!