如何在Java中删除一个列后替换CSV文件



我是Java新手。我能够成功地从本地文件位置读取CSV文件,并能够确定需要删除哪一列以满足我的需求。但是,我无法删除所需的列并将文件写入本地文件夹。有办法解决这个问题吗?我使用了以下代码:

CSVReader reader = new CSVReader(new FileReader(fileName));
String [] nextLine;
while ((nextLine = reader.readNext()) != null) {
System.out.println(nextLine[15]);
}

我想做的就是删除索引为15的列,并将该文件作为CSV文件写入我的本地文件夹。

我假设你使用的是OpenCSV库。

为了使你的代码工作,你必须解决两个问题:

  • 您需要一个写入器来写入您修改的CSV。OpenCSV为此提供了一个CSVWriter类。
  • 你需要将你的行(目前是一个字符串数组)转换成一个列表,以便能够删除一个元素,然后将其转换回一个数组,以匹配CSVWriter。writeNext方法期望。

下面是一些代码:

CSVReader reader = new CSVReader(new FileReader(fileName));
CSVWriter writer = new CSVWriter(new FileWriter(outFileName));
String[] origLine;
while ((origLine = reader.readNext()) != null) {
List<String> lineList = new ArrayList<>(Arrays.asList(origLine));
lineList.remove(15);
String[] newLine = lineList.toArray(new String[lineList.size()]);
writer.writeNext(newLine, true);
}
writer.close();
reader.close();

附加说明:

  • 如果要用于生产能力,代码可能需要更多的错误处理等。
  • 列表索引在Java中从0开始,所以remove[15]实际上是从文件中删除第16列。
  • 代码将其输出写到一个单独的文件中。试图为输入和输出使用相同的文件名将无法工作

相关内容

  • 没有找到相关文章