go语言csv文件的读取与写入-创新互联
go语言csv文件的读取
暂时未整理
创新互联建站"三网合一"的企业建站思路。企业可建设拥有电脑版、微信版、手机版的企业网站。实现跨屏营销,产品发布一步更新,电脑网络+移动网络一网打尽,满足企业的营销需求!创新互联建站具备承接各种类型的做网站、成都网站制作项目的能力。经过10余年的努力的开拓,为不同行业的企事业单位提供了优质的服务,并获得了客户的一致好评。package main
import (
"encoding/csv"
"fmt"
"io"
"log"
"os"
)
func main() {
//准备读取文件
fileName := "D:\\gotest\\src\\source\\test.csv"
fs, err := os.Open(fileName)
if err != nil {
log.Fatalf("can not open the file, err is %+v", err)
}
defer fs.Close()
r := csv.NewReader(fs)
//针对大文件,一行一行的读取文件
for {
row, err := r.Read()
if err != nil && err != io.EOF {
log.Fatalf("can not read, err is %+v", err)
}
if err == io.EOF {
break
}
fmt.Println(row)
}
//针对小文件,也可以一次性读取所有的文件
//注意,r要重新赋值,因为readall是读取剩下的
fs1, _ := os.Open(fileName)
r1 := csv.NewReader(fs1)
content, err := r1.ReadAll()
if err != nil {
log.Fatalf("can not readall, err is %+v", err)
}
for _, row := range content {
fmt.Println(row)
}
//创建一个新文件
newFileName := "D:\\gotest\\src\\source\\newfile.csv"
//这样打开,每次都会清空文件内容
//nfs, err := os.Create(newFileName)
//这样可以追加写
nfs, err := os.OpenFile(newFileName, os.O_RDWR|os.O_CREATE, 0666)
if err != nil {
log.Fatalf("can not create file, err is %+v", err)
}
defer nfs.Close()
nfs.Seek(0, io.SeekEnd)
w := csv.NewWriter(nfs)
//设置属性
w.Comma = ','
w.UseCRLF = true
row := []string{"1", "2", "3", "4", "5,6"}
err = w.Write(row)
if err != nil {
log.Fatalf("can not write, err is %+v", err)
}
//这里必须刷新,才能将数据写入文件。
w.Flush()
//一次写入多行
var newContent [][]string
newContent = append(newContent, []string{"1", "2", "3", "4", "5", "6"})
newContent = append(newContent, []string{"11", "12", "13", "14", "15", "16"})
newContent = append(newContent, []string{"21", "22", "23", "24", "25", "26"})
w.WriteAll(newContent)
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享名称:go语言csv文件的读取与写入-创新互联
分享链接:http://azwzsj.com/article/djhipd.html