golang学习的点点滴滴:读写文件(面向对象版)
发布时间:2020-12-16 18:49:17 所属栏目:大数据 来源:网络整理
导读:packagemainimport("fmt""bufio""io""os""flag""strconv")//定义一个结构体typeReadWritestruct{In*stringOut*string}//定义初始化方法func(rw*ReadWrite)Init(){rw.In=flag.String("in","in","in")rw.Out=flag.String("out","out","out")flag.Parse()}//定
packagemain import( "fmt" "bufio" "io" "os" "flag" "strconv" ) //定义一个结构体 typeReadWritestruct{ In*string Out*string } //定义初始化方法 func(rw*ReadWrite)Init(){ rw.In=flag.String("in","in","in") rw.Out=flag.String("out","out","out") flag.Parse() } //定义读文件的方法 func(rw*ReadWrite)Read()(result[]int,errerror){ file,err1:=os.Open(*(rw.In)) ifnil!=err1{ panic("errortoopenfile...") } deferfile.Close() br:=bufio.NewReader(file) result=make([]int,0) for{ line,isPrefix,err2:=br.ReadLine() ifnil!=err2{ ifio.EOF==err2{ fmt.Println("finishread...") } break } ifisPrefix{ return } str:=string(line) value,err3:=strconv.Atoi(str) ifnil!=err3{ err=err3 return } result=append(result,value) } return } //定义写文件的方法 func(rw*ReadWrite)Write(value[]int){ file,err:=os.Create(*(rw.Out)) ifnil!=err{ panic("errortocreatefile...") } deferfile.Close() forindex,res:=rangevalue{ str:=strconv.Itoa(res*index) file.WriteString(str+"n") } } funcmain(){ deferfunc(){ ifex:=recover();ex!=nil{ fmt.Println(ex) } }() rw:=new(ReadWrite) rw.Init() value,err:=rw.Read() ifnil!=err{ panic("error.....") } rw.Write(value) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |