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)
    	}
    
    }
    

      

  • 相关阅读:
    MySQL的存储引擎
    MySQL的索引及执行计划
    MySQL的SQL基础应用
    MySQL基础入门
    代码质量检测SonarQube
    Jenkins持续集成
    Git版本控制及gitlab私有仓库
    jumpserver跳板机
    Keepalived高可用服务
    well-known file is not secure
  • 原文地址:https://www.cnblogs.com/yshyee/p/9130989.html
Copyright © 2011-2022 走看看