在 Go 中以字符串数组形式读写文本文件
处理文本文件的能力是编程中的常见需求,包括读取和写入文本文件写入字符串数组。在 Go 中,存在一个解决方案来满足这一需求。
读取文本文件
从 Go 1.1 开始,bufio.Scanner API 提供了一种有效的方法来读取文本文件将文件转换为字符串切片。下面是一个示例:
import ( "bufio" "fmt" "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() }
此函数将整个文件读入内存并返回其行的一部分。
写入文本文件
要将字符串切片写入文本文件,可以使用 bufio.Writer类型:
import ( "bufio" "fmt" "os" ) 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() }
此函数创建一个文件,向其中写入行,并刷新缓冲区以确保数据写入磁盘。
用法示例
这是如何使用这些的示例函数:
lines, err := readLines("foo.in.txt") if err != nil { log.Fatalf("readLines: %s", err) } // Process the lines... if err := writeLines(lines, "foo.out.txt"); err != nil { log.Fatalf("writeLines: %s", err) }
此代码从“foo.in.txt”文件中读取行,处理它们,然后将它们写入“foo.out.txt”文件。
以上是如何在 Go 中以字符串数组形式读写文本文件?的详细内容。更多信息请关注PHP中文网其他相关文章!