用java将三个csv表格文件,整合数据组合成一个文件。

三个表在不同的文件内... 三个表在不同的文件内 展开
 我来答
百毒千毒
2018-07-04 · TA获得超过4737个赞
知道大有可为答主
回答量:2499
采纳率:88%
帮助的人:848万
展开全部
//说思路:开始理解错了,以为让三个文件,变成一张整体的表..以后求助最好带上源文件
//费老劲了.把你这个图片去转成表格数据,然后又拆分成几个小细节表格...恼火啊..
//不过也学到知识了,csv文件..
//这里有一个问题,就是合并的文件,并不是你想要的顺序,因为你的文件名毫无规律,如果有规律
//合并后,就会是按顺序的..比如s1,s2,s3...好了上代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
public class CsvMerge {
private String path;// 路径;
private File dir, files[];// 目录,文件数组;
private SequenceInputStream sis;//序列流
private PrintWriter pw;// 输出流
private boolean flag;// 标记
private byte[] bys;//容器
public static void main(String[] args) {
new CsvMerge().init();//启动合并功能;
}
private void init() {
path = "K:\\IO测试\\合并Csv文件";// 确定路径;
dir = new File(path);// 目录位置
flag = dir.exists();
if (!flag) {
System.out.println("目录不存在别费劲了..");
return;
}
files = dir.listFiles(new FilenameFilter() {//扫描目录,需要被合并的碎片文件
@Override
public boolean accept(File dir, String name) {
return name.endsWith("csv");
}
});
ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();// 创建文件读取流集合;
try {
for (int i = 0; i < files.length; i++) // 创建分支流
al.add(new FileInputStream(files[i].getAbsoluteFile()));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Enumeration<FileInputStream> en=Collections.enumeration(al);//拿到枚举对象;
sis=new SequenceInputStream(en);//初始化合并流;
bys=new byte[1024];
try {
File file=new File(dir,"Mer.csv");//目标合并文件;
if(file.exists()) {
System.out.println("文件已经存在...");
return;
}
pw=new PrintWriter(new FileWriter(file),true);
for(int a=sis.read(bys);a!=-1;a=sis.read(bys)) {
pw.println(new String(bys,0,a));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch(Exception e) {
e.printStackTrace();
}finally {
if(sis!=null) {
try {
sis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
//标记的是合并后的文件,碎片文件,随便你放,如果想按照顺序,就把名字取的有顺序

追问
你的代码运行出来,只是把三个文件合在一起了,并没有把表集合在一张表里
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式