go語言程式設計聖經裡面ioutil.ReadFile方式讀取檔案,查詢重複行時的問題,如果最後一行是相同的,那麼讀取結果不對

stephenXu發表於2019-04-06
src:
//readFile once read all to memory
package main

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

func main(){
    counts :=make(map[string]int);
    for _,fileName :=range os.Args[1:]{
        data,err :=ioutil.ReadFile(fileName);
        if err!=nil{
            fmt.Fprintf(os.Stderr,"dup3:%v\n",err);
            continue;
        }
        //fmt.Println((string(data)));
        //fmt.Println(strings.Split(string(data),"\n"))
        //fmt.Println(len(strings.Split(string(data), "\n")));
        dup :=strings.Split(string(data),"\n")
        fmt.Println(dup)
        for i,arg := range dup{
            fmt.Print(i)
            fmt.Println("->"+arg)
        }
        for _,line:=range dup{
            //fmt.Println(line);
            counts[line]++;
        }
        fmt.Println(len(counts))
    }
    for line,n:=range counts{
        if n>0{
            fmt.Printf("%d\t%s\n",n,line);
        }
    }

}
data:
asd
asa
asd
asd
asa
dss
asd
result:
 asd]
0->asd
1->asa
2->asd
3->asd
4->asa
5->dss
6->asd
4
2   asa
1   dss
1   asd
3   asd
更多原創文章乾貨分享,請關注公眾號
  • go語言程式設計聖經裡面ioutil.ReadFile方式讀取檔案,查詢重複行時的問題,如果最後一行是相同的,那麼讀取結果不對
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章