0

我的 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)的逻辑,因为我需要首先捕获这些列,然后需要将列的值存储在地图。

请指教

4

2 回答 2

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++;
}

现在,由于您拥有这些索引,因此对于拆分后的每一行,使用这些索引来检索所需的值。

注意:如果使用Java7switch-case则在标头上使用,如果标头数量更多,您也可以将HashMap其用于标头索引映射。

于 2013-11-11T06:39:01.627 回答
0

您可以使用Commons CSV并将管道指定为分隔符来加载数据,然后它允许您根据标题名称访问数据,从而使您不必自己进行“切换”。

于 2013-11-11T12:34:22.843 回答