如何使用Java从CSV中的第x行和第y列读取值?

如何使用Java从CSV中的第x行和第y列读取值?,java,csv,Java,Csv,是否可以从CSV中读取指定行数和列数的特定值 例如,我的CSV数据如下所示 CREATE,BulkDevice4981,SENSOR,localhost CREATE,BulkDevice4081,SENSOR,localhost 我想从第1行和第2列中读取值,而不必在整个CSV中进行标记 在这方面我需要帮助。请帮帮我如果不遍历前几行,就无法读取第n行,但这并不意味着要读取整个文件 因此,为了实现您的目标,您需要阅读文件的第n行: try (Stream<String> lines

是否可以从CSV中读取指定行数和列数的特定值

例如,我的CSV数据如下所示

CREATE,BulkDevice4981,SENSOR,localhost
CREATE,BulkDevice4081,SENSOR,localhost
我想从第1行和第2列中读取值,而不必在整个CSV中进行标记


在这方面我需要帮助。请帮帮我

如果不遍历前几行,就无法读取第n行,但这并不意味着要读取整个文件

因此,为了实现您的目标,您需要阅读文件的第n行:

try (Stream<String> lines = Files.lines(Paths.get("path/to/your/file"))) {
    String line = lines.skip(LINE_NUMBER).findFirst().get();
}

不过,这是一个相当原始的解决方案,最好使用专用的CSV阅读器,如

如果使用opencsv.CSVReader,则可以设置起点。然后可以调用readNext,它返回一个字符串数组。现在你可以很容易地访问你想要的元素,当你达到预期的数量时,对每个readNext进行计数,然后按你想要的方式进行分割。是的,我使用了opencsv。下面是代码,字符串csvFile=path\u to\u file;CSVReader cr=新的CSVReadernew文件读取器;字符串[]csvCell;whilecscell=cr.readNext!=null{String device1=csvCell[1];System.out.printlndevice1;其中返回第1列的所有值。我想分别打印第1行第2列单元格值和第2行第2列值。
String line = ...
String[] columns = line.split(",")
// columns[2] should contain your value