golang学习的点点滴滴:读写文件(面向过程版)

golang学习的点点滴滴:读写文件(面向过程版),第1张

概述package main import ( "fmt" "bufio" "io" "os" "flag" "strconv")// 使用命令行 -in 默认为infilevar in *string = flag.String("in", "infile", "input file name ...")var out *string = flag.String("out",
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学习的点点滴滴:读写文件(面向过程版)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1289894.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存