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() 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}总结
以上是内存溢出为你收集整理的golang学习的点点滴滴:读写文件(面向过程版)全部内容,希望文章能够帮你解决golang学习的点点滴滴:读写文件(面向过程版)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)