Reading and Writing Text Files to a String Array in Go
Reading and writing text files into and out of a string array is a common requirement in programming. In Go, this can be achieved using the bufio.Scanner API introduced in Go1.1.
Consider the following code snippet that uses bufio.Scanner to read a text file into a string array:
package main import ( "bufio" "fmt" "log" "os" ) 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() } 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) } }
This function opens the specified file, creates a bufio.Scanner for the file, iterates over each line in the file, and appends the line to a string array.
You can also write a string array to a text file using the writeLines function:
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 := []string{"line 1", "line 2", "line 3"} if err := writeLines(lines, "foo.out.txt"); err != nil { log.Fatalf("writeLines: %s", err) } }
This function creates a file, writes the lines to the file using a bufio.Writer, and flushes the writer to ensure all data is written to the file.
These functions provide a simple and effective way to read and write text files into and out of a string array in Go.
The above is the detailed content of How to Read and Write Text Files to a String Array in Go?. For more information, please follow other related articles on the PHP Chinese website!