我的c:中有以下名为ght.txt的文件,它包含以下数据
Id|ytr|yts
1|W|T
2|W|T
3|W|T
现在的问题是这些列的位置(Id | ytr | yts)也没有按顺序意味着它们也可以重新洗牌。对于前
Id|ytr|dgfj|fhfjk|fgrt|yts
或者他们可以像..
Id|wer|ytr|weg|yts
现在请告知我如何通过java中的缓冲编写器读取此文件以及仅捕获这些列(Id | ytr | yts)的逻辑,因为我需要先捕获这些列然后需要存储的值地图中的列。
请告知
答案 0 :(得分:0)
这是提供定位信息的第一行,
String[] headers = firstLine.split("|");
int idIx, ytrIx, ytsIx, count = 0;
for(String header : headers) {
if(header.equals("Id")) {
idIx = count;
}elseif (header.equals("ytr")) {
ytrIx = count;
} elseif (header.equals("yts")) {
ytsIx = count;
}
count++;
}
现在,由于您有这些索引,因此对于拆分后的每一行,请使用这些索引来检索所需的值。
注意:如果使用Java7
,请在标头上使用switch-case
,如果num标头更多,则您也可以使用HashMap
进行标头索引映射。
答案 1 :(得分:0)
您可以使用Commons CSV并指定管道作为分隔符来加载数据,然后它允许您访问数据based on header name,以免您自己做“切换”内容。< / p>