009-Go 读取写入CSV文件

package main

import(
"encoding/csv"
"fmt"
"os"
"strconv"
) type Post struct{
Id int
Content string
Author string
} func main(){
csvFile, err := os.Create("posts.csv")
if err!= nil{
panic(err)
}
defer csvFile.Close() posts := []Post{
Post{Id:100,Content:"Hello go",Author:"张三"},
Post{Id:200,Content:"Hello java",Author:"李四"},
Post{Id:300,Content:"Hello php",Author:"王五"},
} writer := csv.NewWriter(csvFile)
for _,post := range posts{
line := []string{strconv.Itoa(post.Id), post.Content, post.Author}
err := writer.Write(line)
if err != nil{
panic(err)
}
}
writer.Flush() file,err := os.Open("posts.csv")
if err != nil{
panic(err)
}
defer file.Close() reader := csv.NewReader(file)
reader.FieldsPerRecord = -1
record, err := reader.ReadAll()
if err != nil{
panic(err)
} var myposts []Post
for _, item := range record{
id, _ := strconv.ParseInt(item[0], 0, 0)
post := Post{Id: int(id), Content:item[1], Author:item[2]}
myposts = append(myposts, post)
} for _, value := range myposts{
fmt.Printf("Id:%d,Content:%s,Author:%s\n", value.Id, value.Content, value.Author)
} }

  

上一篇:html 04-HTML标签图文详解(一)


下一篇:postgresql数据库常用操作命令及SQL语言