func NewNodeReaderFilter(rd io.Reader, delim byte) DirtyFilter {
	nf := &nodeFilter{
		root: newNode(),
	}
	buf := new(bytes.Buffer)
	io.Copy(buf, rd)
	buf.WriteByte(delim)
	for {
		line, err := buf.ReadString(delim)
		if err != nil {
			break
		}
		if line == "" {
			continue
		}
		nf.addDirtyWords(line)
	}
	buf.Reset()
	return nf
}
func NewNodeReaderFilter(rd io.Reader, delim byte) DirtyFilter {
	nf := &nodeFilter{
		root: newNode(),
	}
	buf := new(bytes.Buffer)
	io.Copy(buf, rd)
	buf.WriteByte(delim)
	for {
		line, err := buf.ReadString(delim)
		if err != nil {
			break
		}
		if line == "" {
			continue
		}
		nf.addDirtyWords(line)
	}
	buf.Reset()
	return nf
}
func NewNodeReaderFilter ( rd io . Reader , delim byte ) DirtyFilter { nf := & nodeFilter { root : newNode ( ) , } buf := new ( bytes . Buffer ) io . Copy ( buf , rd ) buf . WriteByte ( delim ) for { line , err := buf . ReadString ( delim ) if err != nil { break } if line == " " { continue } nf . addDirtyWords ( line ) } buf . Reset ( ) return nf }
// NewNodeReaderFilter 创建节点过滤器，实现敏感词的过滤
// 从可读流中读取敏感词数据(以指定的分隔符读取数据)
NewNodeReaderFilter 创建节点过滤器，实现敏感词的过滤 从可读流中读取敏感词数据 ( 以指定的分隔符读取数据 )