golang学习的点点滴滴:读写文件(面向过程版)
发布时间:2020-12-16 18:49:18 所属栏目:大数据 来源:网络整理
导读:packagemainimport("fmt""bufio""io""os""flag""strconv")//使用命令行-in默认为infilevarin*string=flag.String("in","infile","inputfilename...")varout*string=flag.String("out","outfile","outputfilename...")funcmain(){//解析命令行flag.Parse()def
packagemain import( "fmt" "bufio" "io" "os" "flag" "strconv" ) //使用命令行-in默认为infile varin*string=flag.String("in","infile","inputfilename...") varout*string=flag.String("out","outfile","outputfilename...") funcmain(){ //解析命令行 flag.Parse() deferfunc(){ //如果发现异常... ifex:=recover();nil!=ex{ fmt.Println(ex) } }() value,err:=read() ifnil!=err{ //抛出异常 panic(err) } write(value) } funcwrite(value[]int)(errerror){ //创建文件 file,err2:=os.Create(*out) ifnil!=err2{ err=err2 fmt.Println("errortocreatefile...") return } //不管怎么着,最后都关闭文件 deferfile.Close() for_,res:=rangevalue{ //将int类型转化成string str:=strconv.Itoa(res+2) //将string写入file中 file.WriteString(str+"n") } returnnil } funcread()(result[]int,errerror){ //打开文件 file,err1:=os.Open(*in) ifnil!=err1{ err=err1 return } //不管怎么着,最后都关闭文件 deferfile.Close() //从文件创建一个bufferreader br:=bufio.NewReader(file) //初始化一个数组切片 result=make([]int,0) //死循环 for{ //一行一行的读 line,isPrefix,err2:=br.ReadLine() ifnil!=err2{ //读到文件结尾 ifio.EOF==err2{ fmt.Println("finishread...") } return } ifisPrefix{ break } //将字符数组转化成字符串 str:=string(line) //将字符串转化成int value,err3:=strconv.Atoi(str) ifnil!=err3{ err=err3 break } //像切片中追加 result=append(result,value) } //返回结果 return } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |