将CSV文件合并为一个文件,没有重复的标题
我有一些具有相同列标题的CSV文件。例如
文件A
header1,header2,header3one,two,three
four,five,six
文件B
header1,header2,header3seven,eight,nine
ten,eleven,twelve
我想将其合并,以便将数据合并到一个文件中,文件头位于顶部,但其他任何地方都没有文件头。
header1,header2,header3one,two,three
four,five,six
seven,eight,nine
ten,eleven,twelve
什么是实现此目标的好方法?
回答:
这应该工作。它检查要合并的文件是否具有匹配的头。否则将引发异常。异常处理(关闭流等)已作为练习。
String[] headers = null;String firstFile = "/path/to/firstFile.dat";
Scanner scanner = new Scanner(new File(firstFile));
if (scanner.hasNextLine())
    headers[] = scanner.nextLine().split(",");
scanner.close();
Iterator<File> iterFiles = listOfFilesToBeMerged.iterator();
BufferedWriter writer = new BufferedWriter(new FileWriter(firstFile, true));
while (iterFiles.hasNext()) {
  File nextFile = iterFiles.next();
  BufferedReader reader = new BufferedReader(new FileReader(nextFile));
  String line = null;
  String[] firstLine = null;
  if ((line = reader.readLine()) != null)
    firstLine = line.split(",");
  if (!Arrays.equals (headers, firstLine))
    throw new FileMergeException("Header mis-match between CSV files: '" +
              firstFile + "' and '" + nextFile.getAbsolutePath());
  while ((line = reader.readLine()) != null) {
    writer.write(line);
    writer.newLine();
  }
  reader.close();
}
writer.close();
以上是 将CSV文件合并为一个文件,没有重复的标题 的全部内容, 来源链接: utcz.com/qa/397970.html








