我有一个包含数百行和多列的.csv文件。我想从文件中读取特定的列。这些是我的专栏名称。
productId title imageUrlStr mrp price productUrl categories productBrand
从这里我想阅读我通过这种方式做的所有列
final String DELIMITER = ",";
try
{
String line = "";
//Create the file reader
fileReader = new BufferedReader(new FileReader(fileToParse));
//Read the file line by line
while ((line = fileReader.readLine()) != null)
{
String name,imgURL,productURL,price;
String[] images;
//Get all tokens available in line
String[] tokens = line.split(DELIMITER);
name=tokens[1];
images=tokens[2];
它是这样的。但问题是令牌[2],这是列' imageUrlStr'有多个值被昏迷分开。我只想从这个栏目中获得第一个价值。并且没有固定的数字,有些在该列中有3个值,有些有4个等等所以我不能再使用昏迷来分离该值以获得FIRST VALUE并转到下一列。
我的问题是我可以使用CSV文件中的列名分隔和拆分。所以指定的列名将存储到一个字符串,然后另一个字符串。所以我可以拆分imageurlstr的值并取第一个值,然后转到下一列。
答案 0 :(得分:0)
我通常使用Apache Commons CSV。 {{3P>
答案 1 :(得分:0)
如果你的CSV格式正确,那么你在报价中的所有imageUrlStr值都是:" url1,url2,url3和#34;否则你的CSV格式就会出现问题。
有很多图书馆像: http://commons.apache.org/proper/commons-csv/ http://opencsv.sourceforge.net/
您甚至可以使用regexp进行解析。例如"(?:\\s*(?:\\\"([^\\\"]*)\\\"|([^,]+))\\s*,?|(?<=,)(),?)+?"