主要是使用了Runtime.getRuntime().exec(str)
然后str是自己拼接的命令
public static void MergeCSVOnWindows(String path, File[] files) {
List<String> shellList = new ArrayList<String>();
File newFile = new File(path + File.separator + "final.csv");
newFile.canRead();
shellList.add("cmd");
shellList.add("exe");
shellList.add("/c");
shellList.add("copy");
for (File file : files) {
if (file.isFile() && !file.getAbsolutePath().toLowerCase().endsWith("final.csv"))
if (file.getAbsolutePath().toLowerCase().endsWith("head.csv")) {
// 将head.csv放在集合中的三个元素
shellList.add(4, file.getAbsolutePath());
shellList.add(5, "+");
} else {
shellList.add(file.getAbsolutePath());
shellList.add("+");
}
}
shellList.remove(shellList.size() - 1);
shellList.add(path + File.separator + "final.csv");
String[] sArray = new String[shellList.size()];
for (int i = 0; i < shellList.size(); i++) {
sArray[i] = shellList.get(i);
}
try {
Process process = Runtime.getRuntime().exec(sArray);
int exitValue = process.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
String filePath = "E:\\Git";
File[] files = new File(filePath).listFiles();
String os = System.getProperty("os.name");
System.out.println(os);
if (os.toLowerCase().startsWith("win")) {
//当前系统为windows
MergeCSVOnWindows(filePath, files);
} else {
//当前操作系统为linux
// 以后需要的时候再写吧
}
单个文件
A B C
1 3 3
2 4 56
合并后
AC,BC,CC
A B C
1 3 3
2 4 56
A B C
1 3 3
2 4 56
A B C
1 3 3
2 4 56
A B C
1 3 3
2 4 56
A B C
1 3 3
2 4 56
A B C
1 3 3
2 4 56
A B C
1 3 3
2 4 56
第一次写blog,希望与各位小伙伴一同进步