加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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)
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读