Read and Write Text Files with String Arrays in Go
Reading and writing text files into and out of string arrays is a frequent and convenient task in programming. This article explores if such a functionality exists in Go and provides an example solution using the bufio.Scanner API introduced in Go1.1.
bufio.Scanner for Efficient File Handling
The Go standard library provides the bufio.Scanner API for efficient file handling and text line parsing. This API enables the straightforward reading and writing of text lines to and from files.
Example Usage
Consider the following example demonstrating the use of bufio.Scanner for reading and writing text files:
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) } }
This example demonstrates the use of bufio.Scanner for reading lines from "foo.in.txt" and writing them to "foo.out.txt". The readLines function reads the entire file into memory, while the writeLines function writes the lines to the output file.
By utilizing the bufio.Scanner API, you can easily read and write text files in Go, making it a convenient tool for handling text-based data.
The above is the detailed content of How Can I Efficiently Read and Write Text Files Using String Arrays in Go?. For more information, please follow other related articles on the PHP Chinese website!