Go中的CSV解析器无法写入文件

时间:2018-10-20 20:12:52

标签: sql csv parsing go

我正在编写一个简单的工具来帮助自己工作,但这主要是出于学习目的,该工具接收一个“ .csv”文件,并将文件中的数据转换为sql insert into语句,然后将这些语句写入一个“ .sql”文件。 问题是,完成后,当我检查文件时,最后一行永远不会完成,通常会停止

INSERT INTO tablename (field1, field2, field3, field4

我正在使用bufio.NewWriter和函数WriteString,并且它没有返回任何错误,所以我不知道发生了什么,我正在测试的完整“ .csv”文件为8Kb,但是我可以不要分享它,因为其中包含对您有意义的信息。

我遇到的另一个问题是该特定语句

sqlFile, err := os.Create(date.Format("20-11-2018 20.10.05") + ".sql")

我在这里尝试做的是将时间戳记作为文件名,格式为“ dd-MM-yyyy hh.mm.ss”,但文件名最终像这样“ 200-1010-20108 200.100” .34.sql”,不知道这里发生了什么。

在有人告诉我之前,是的,我确定已经有用于此目的的工具,但是这样做的主要动机是学习,因此,我欢迎对整个代码(而不只是部分内容)提出任何想法或批评我有问题。

Link to the github page

谢谢!

1 个答案:

答案 0 :(得分:4)

  

Package bufio

import "bufio" 
     

func (*Writer) Flush

func (b *Writer) Flush() error
     

Flush将所有缓冲的数据写入基础io.Writer。

完成写入后,请在关闭文件之前刷新缓冲的写入器。