那些年使用Golang读取txt的坑!

项目中涉及到一些用户评论和用户可以自定义发布长段文字功能, 所以就想到项目中必须要加上文字过滤的功能了。 去年做的项目也有评论等功能, 等现在的项目没问题就把这个功能加过去!

还是直接上代码:

//获取关键字数组
func GetKeyWordsList() []string {
    file1, err := os.OpenFile("../conf/words_filter.txt",         os.O_RDWR|os.O_APPEND|os.O_CREATE, os.ModeType)
    if err != nil {
        panic(err)
    }
    defer file1.Close()
    // 使用ioutil读取文件所有内容
    b, err := ioutil.ReadAll(file1)
    if err != nil {
        panic(err)
    }
    a := strings.Replace(string(b),"\r\n", "\n", -1)
    return strings.Split(a, "\n")
}

当时由于仅按照\n进行拆分。 得到的行数没问题, 可是结果始终不尽人意, 这段需要注意一下拆分。

//将传入字符串替换为*
func GetStar(str string) string {
    if len(str) <= 0 {
        return ""
    }

    result := ""

    slen := []rune(str)
    for i := 0; i < len(slen); i++ {
        result += "*"
    }

    return result
}

这段的坑是需要rune处理字符串, 不然在Golang中一个中文字符是3长度, 这段需要注意一下处理中文长度的问题。

就到这了, 希望对各位有所帮助

你可能感兴趣的:(Golang)