我认为能够在字符串数组中读取(和写入)文本文件是一个相当普遍的要求。当从不需要访问数据库的语言开始时,它也非常有用。 Golang 中存在吗?
例如
func ReadLines(sFileName string, iMinLines int) ([]string, bool) {
和
func WriteLines(saBuff[]string, sFilename string) (bool) {
我更喜欢使用现有的而不是重复的。
最佳答案
从 Go1.1 版本开始,有一个 bufio.Scanner可以轻松从文件中读取行的 API。考虑上面的以下示例,用 Scanner 重写:
package main
import (
"bufio"
"fmt"
"log"
"os"
)
// readLines reads a whole file into memory
// and returns a slice of its 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 the lines to the given 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)
}
}
关于go - 将文本文件读入字符串数组(并写入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5884154/