GoLang-读取大文本文件

时间:2020-05-01 21:45:53

标签: go

以下是文件读取,拆分和单词出现的代码:

package main

import (
    "fmt"
    "io/ioutil"
    "strings"
)

type text []string

func (wordList text) wordCount() map[string]int {

    keyCounts := make(map[string]int)

    for _, word := range wordList {
        _, ok := keyCounts[word]
        if ok {
            keyCounts[word] += 1
        } else {
            keyCounts[word] = 1
        }
    }
    return keyCounts
}

func main() {
    b, err := ioutil.ReadFile("shakespeare.txt")

    if err != nil {
        fmt.Print(err)
    }
    //fmt.Println(b)
    str := string(b)

    var words text = strings.Fields(str)
    //fmt.Println(text)

    var d [25]string
    n := copy(d[:], words[:25])
    fmt.Println("Number of elements copied: ", n)
    for i := 0; i < len(d); i++ {
        d[i] = "'" + d[i] + "'"
    }
    fmt.Println(d)
    fmt.Println(len(words))
    fmt.Println(words.wordCount()["MIDSUMMER-NIGHT'S"])
}

file.txt具有以下内容:

日本語 读者 你好吗
A MIDSUMMER-NIGHT'S DREAM

Now , fair Hippolyta , our nuptial hour 
Draws on apace : four happy days bring in 
Another moon ; but O ! methinks how slow 
This old moon wanes ; she lingers my desires ,
Like to a step dame , or a dowager 
Long withering out a young man's revenue .

1)可以分块读取file.txt吗?因为file.txt的大小是GB

2)您可以建议文本处理程序包执行字数统计吗?

0 个答案:

没有答案
相关问题