В настоящее время я пытаюсь прочитать файл с 200 + столбцами и 1000 + строками. Я использую следующий код:Чтение в очень больших файлах в Golang
var result []string
file, err := os.Open("t8.txt")
if (err != nil) {
fmt.Println(err)
}
defer file.Close()
scan := bufio.NewScanner(file)
for scan.Scan() {
result = append(result, scan.Text())
}
fmt.Println(scan.Err()) //token too long
Однако, когда я распечатать результаты, все это я получаю это первая линия, потому что он говорит, что маркер слишком долго. Когда я пытаюсь использовать файлы меньшего размера, он работает нормально. Есть ли способ в Голанге, который я мог бы сканировать в больших файлах?
** Никогда ** игнорируйте значения ошибки 'error'! (Оба из 'os.Open' и проверка' scan.Err() 'после цикла также). –
Я не знал, что у них есть scan.Err(), но теперь я вижу, что он возвращает «токен слишком долго». – freetoplay
Когда я все равно хочу прочитать весь файл, иногда я просто использую ['syscall.Mmap'] (http://golang.org/pkg/syscall/#Mmap), например [здесь] (http: // stackoverflow. ком/а/28592330/2714852). – twotwotwo