csv文件处理

menghuanchiyue 2013-12-05 09:32:54
有个数据包(csv文件格式)非常大(1.6G),我需要把里面的数据处理后存储到数据库中。
现在的问题是因为这个文件太大无法打开,程序读取会内存溢出。
求处理方法。
...全文
252 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
卧_槽 2013-12-05
  • 打赏
  • 举报
回复
一行一行的读就好了
gomoku 2013-12-05
  • 打赏
  • 举报
回复
可以自己写一个CSV解析,几十行就可以了。 CSV解析中用StreamReader来ReadLine。StreamReader不用把文件全部放入内存。
马老虎 2013-12-05
  • 打赏
  • 举报
回复
第一种:加内存。 第二种:手动拆分csv 分别读取。 第三种:文件流分段处理。
夜轻风 2013-12-05
  • 打赏
  • 举报
回复
qldsrx 2013-12-05
  • 打赏
  • 举报
回复
C#的话直接用StreamReader一行行读取,并一行行插入数据库,不要把文件内容全部加载。 Sqlserver的话可以用bcp命令直接将这个csv文件导入到数据库中,非常简单快速。 Oracle 的话可以用utl_file.fopen打开csv文件,逐行导入到数据库中,也很快。 MySQL的话可以用LOAD DATA INFILE语法读取csv文件并导入到数据库中,非常快。
menghuanchiyue 2013-12-05
  • 打赏
  • 举报
回复
一行一行读取只能用于一次性操作,这文件只是一个样本,还有更大的数据文件,不可能一次操作完的。 有没有办法记录一行的标识,下次读取从这个标识开始读? 分块读可以记录,但是会破坏格式
nanbaifeiliao 2013-12-05
  • 打赏
  • 举报
回复
StreamReader来ReadLine,一行一行来读取

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧