zoukankan      html  css  js  c++  java
  • 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
    ", value.Id, value.Content, value.Author)
    	}
    
    }
    

      

  • 相关阅读:
    链表的一些规律总结
    acclib的尝试
    初入指针
    在一个堆成矩阵中的循环判断(井字棋游戏)
    初学c语言的小套路汇总
    在循环中计算式一正一负的处理
    最大公约数的计算方法
    大数加法
    大数乘法
    复制可见区域到新表
  • 原文地址:https://www.cnblogs.com/yshyee/p/9130989.html
Copyright © 2011-2022 走看看