亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

write channel打印在輸出控制臺沒有具體的字符串

package main


import (

????"strings"

????"time"

????"fmt"

????"os"

????"bufio"

????"io"

)


type Reader interface {

????Read(rc chan []byte)

}


type Writer interface{

????Write(wc chan string)

}


type LogProcessOpt struct {

????rc chan []byte

????wc chan string

????read Reader

????write Writer

}


type ReadFromFile struct {

????path string

}


func (r *ReadFromFile) Read (rc chan []byte){

????//讀取模塊

????//打開文件

//fileName :="acc.txt";

????f, err := os.Open(r.path)

????if err != nil {

????????panic(err)

????}

????result , err := f.Seek(0,2)

????fmt.Println(result)


????buf := bufio.NewReader(f)

????for {


????????line,err := buf.ReadBytes('\n')

????????if err ==io.EOF{

????????????time.Sleep(5*time.Second)

????????????continue

????????} else if err!= nil{

????????????panic(fmt.Sprintf("ReadBytes error:%s",err.Error()))

????????}

????????rc<-line[:len(line)-1]

????}

}


type WriteToInfluxDB struct {

????influxDBDsn string //influx data source

}


func (w *WriteToInfluxDB) Write(wc chan string){

????//寫入模塊

????for v := range wc {

????????fmt.Println(v)

????}

}


func (lp *LogProcessOpt) Process(){


????for v := range lp.rc {

????????lp.wc <- strings.ToUpper(string(v[:]))

????}

????fmt.Println(lp.wc)

}


func main(){

????r := &ReadFromFile {

????????path:"./acc.txt",

????}


????w := &WriteToInfluxDB{

????????influxDBDsn:"username&password..",

????}


????lp:= &LogProcessOpt{

????????rc: make(chan []byte),

????????wc: make(chan string),

????????read:r,

????????write:w,

????}


????//(*lp).ReadFromFile , go 自動處理成下面這樣

????go lp.read.Read(lp.rc)

????go lp.Process()

????go lp.write.Write(lp.wc)


????time.Sleep(30*time.Second)


}

代碼寫法照著視頻寫的,當新添加文本內容到txt文件中的時候不能打印出具體的字符串

https://img1.sycdn.imooc.com//5b8a4f6600011b2905560081.jpg


正在回答

舉報

0/150
提交
取消

write channel打印在輸出控制臺沒有具體的字符串

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號