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

三个表在不同的文件内

//说思路:开始理解错了,以为让三个文件,变成一张整体的表..以后求助最好带上源文件
//费老劲了.把你这个图片去转成表格数据,然后又拆分成几个小细节表格...恼火啊..
//不过也学到知识了,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();
}
}
}
}
}
//标记的是合并后的文件,碎片文件,随便你放,如果想按照顺序,就把名字取的有顺序

追问

你的代码运行出来,只是把三个文件合在一起了,并没有把表集合在一张表里

温馨提示:答案为网友推荐,仅供参考
相似回答