尝试按行分割一个4G的csv文件
来源:互联网 发布:观察者软件 编辑:程序博客网 时间:2024/06/05 10:30
同事有个4G的csv想另存为xlsx,然后我正好手头没事,就帮她一起想办法。
试了好多方法:
1)先是用ue试着打开,确实打开了,但是不能另存为为xlsx,一直长时间假死。
2)用R读取这个文件,然后另存为xlsx ……
library(xlsx)setwd("D://test//")dt<-read.csv("WK.csv",header = T)head(dt)write.xlsx(dt,"haha.xlsx")
还是too naive
3)想想先把文件分割吧,从网上抄了段Java代码,改成适合的行数
package mysegfile;import java.io.*;public class SegFile {public static void start(int rows, String sourceFilePath, String targetDirectoryPath) {File sourceFile = new File(sourceFilePath);File targetFile = new File(targetDirectoryPath);if (!sourceFile.exists() || rows <= 0 || sourceFile.isDirectory()) {System.out.println("源文件不存在或者输入了错误的行数");return;}if (targetFile.exists()) {if (!targetFile.isDirectory()) {System.out.println("目标文件夹错误,不是一个文件夹");return;}} else {targetFile.mkdirs();}try {BufferedReader br = new BufferedReader(new FileReader(sourceFile));BufferedWriter bw = null;String str = "";String tempData = br.readLine();int i = 1, s = 0;while (tempData != null) {str += tempData + "\r\n";if (i % rows == 0) {bw = new BufferedWriter(new FileWriter(new File(targetFile.getAbsolutePath() + "/" + s + "_" + sourceFile.getName())));bw.write(str);bw.close();str = "";s += 1;}i++;tempData = br.readLine();}if ((i - 1) % rows != 0) {bw = new BufferedWriter(new FileWriter(new File(targetFile.getAbsolutePath() + "/" + s + "_" + sourceFile.getName())));bw.write(str);bw.close();br.close();s += 1;}System.out.println("文件分割结束,共分割成了" + s + "个文件");} catch (Exception e) {}}// 测试public static void main(String args[]) {SegFile.start(50000, "D:/haha2.txt", "d:/aha_output2");}}
感觉很厉害的样子,结果还是小看了4G的文件,运行了好久都没出一个分割文件,挫败。
4)实在不行了,只好转头linux系统 split -l 500000 k.csv xy
唉,虽然暂时解决了问题,但是不能用win 分割还是有点遗憾
阅读全文
0 0
- 尝试按行分割一个4G的csv文件
- MySql导入CSV文件或制表符分割的文件
- 正确解析以逗号分割的CSV文件
- 正确解析以逗号分割的CSV文件
- Ubuntu 解析以逗号“,”分割数据的csv文件
- 一个文件分割的程序
- 一个VC++读取csv文件的函数
- 一个读写csv文件的C#类
- 一个读写csv文件的C#类
- Rust: 从csv文件转成kbar的尝试:速度,还有Julia和激情
- 使用java将csv文件分割
- csv大文件分割以及添加表头
- MySQL导出csv文件并分割成多列
- 将K-means算法应用到图像分割的一个尝试
- 将K-means算法应用到图像分割的一个尝试
- thinkpad 使用Ready for 4G的尝试
- Python将一个CSV文件里的数据追加到另一个CSV文件
- 正则表达式以“,”为分隔符分割CSV文件的内容
- java实现二维码-实现方式3
- Hibernate一级缓存与二级缓存
- NSUserDefault 的介绍
- kotlin for android developer 翻译版github网址链接
- os.system如何传参
- 尝试按行分割一个4G的csv文件
- 倒计时器(2)
- 新闻客户端
- Django Hello,Word!(Windows10)
- Android 自定义日历控件
- HDU
- Rancher被Gartner评为“四大最酷云基础设施供应商”之一!
- longest common sequence(最长公共子序列)
- SMA、SMB、SMC封装的二极管尺寸区分