如何使用java在不知道头的情况下读取csv文件?

如何使用java在不知道头的情况下读取csv文件?,java,csv,Java,Csv,我必须阅读java中的CSV文件,我在谷歌上搜索了它,但我找到了使用标题阅读的方法;但我并没有列标题和文件中可用列数的信息。 在这种情况下,如何读取CSV文件 谢谢您可以假设每一行都是类字符串,并将所有内容读取到二维数组中。之后,您可以尝试将字符串解析为适当的格式 但是,如果您不知道行数据类型,这只是一个猜测。如果您不知道列代表什么,则只能将其作为文本读取,例如: final BufferedReader br = new BufferedReader(new FileReader(file))

我必须阅读java中的CSV文件,我在谷歌上搜索了它,但我找到了使用标题阅读的方法;但我并没有列标题和文件中可用列数的信息。 在这种情况下,如何读取CSV文件


谢谢

您可以假设每一行都是类字符串,并将所有内容读取到二维数组中。之后,您可以尝试将字符串解析为适当的格式


但是,如果您不知道行数据类型,这只是一个猜测。

如果您不知道列代表什么,则只能将其作为文本读取,例如:

final BufferedReader br = new BufferedReader(new FileReader(file));
String line = null;
while ((line = br.readLine()) != null) {

    final String[] lineValues = line.split(COLUMN_DELIMITER);
}
这样,所有列值都将位于这些
lineValues
数组中(column1将是lineValues[0]等)。

可以通过几行返回一个CDATA行集,其工作方式与结果集类似。它可以从文件中读取头并返回所有字符串,例如:

CBuilder builder = new CBuildFromFile(new File("people.csv"));
CDataCacheContainer container = new CDataCacheContainer(builder);
CDataRowSet cdrs = container.getAll();
或者,它还可以将返回的结果缩小到尽可能小的数据类型,而不会丢失保真度。在此过程中,它还可以处理丢失的整数和双精度数(否则结果数据类型将保留为字符串),例如:


把它读成什么?如果您不知道字段的含义或数量,那么您读取CSV的目的是什么?或者
CBuilder builder = new CBuildNarrowedFile(new File("people.csv")).setConvertMissing(true);
CDataCacheContainer container = new CDataCacheContainer(builder);
CDataRowSet cdrs = container.getAll();