【问题标题】:Is there any way to read csv file into an array on specific index in JAVA?有没有办法将 csv 文件读入 JAVA 中特定索引的数组中?
【发布时间】:2021-08-29 15:41:57
【问题描述】:

有没有办法将 csv 文件读入特定索引的数组中? 我正在做一个项目,所以我必须将 csv 文件中的一行与输出连接起来。 但我找不到读取特定行的方法。列有不同的方法,但行没有(我找不到)

【问题讨论】:

  • 您好,欢迎您!除了简单地询问如何完成某事之外,您还可以添加您尝试过的内容吗?发布代码是获得帮助和为您的问题添加上下文的最佳方式之一。 ??????

标签: java arrays eclipse csv methods


【解决方案1】:

看看Apache Commons CSV

应该像这样简单:

package com.com.data.load;

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;

import java.io.File;
import java.io.FileReader;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;

public class RowReader {

    public static String[] readRow(final File file, final int row) throws Exception {
        try (final FileReader reader = new FileReader(file);
             final CSVParser parser = CSVFormat.RFC4180.parse(reader)) {

            final Stream<CSVRecord> stream = StreamSupport.stream(parser.spliterator(), false);

            // row - 1 since header column
            final CSVRecord record =  stream.skip(row - 1).limit(1).findFirst().orElse(null);

            if (record == null) {
                return new String[] {};
            }

            final String[] result = new String[record.size()];
            for (int i = 0; i < record.size(); i++) {
                result[i] = record.get(i);
            }

            return result;
        }
    }
}

【讨论】:

  • 测试后直接从我的IDE复制代码。它工作正常。
  • 我不知道是什么问题。不管怎样,谢谢你的帮助。
  • 我已包含导入并按要求转换为数组。这工作得很好,我猜问题是你没有在你的项目中包含链接库。
猜你喜欢
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-15
  • 1970-01-01
相关资源
最近更新 更多