Java 读取管道分隔的文件

Java 读取管道分隔的文件,java,file,Java,File,我的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)的逻辑,因为我需要首先捕获这些列,然后需要将这些列的值存储在映射中

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


请告知

这是提供定位信息的第一行

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
覆盖header,如果num headers更多,您也可以使用
HashMap
进行header索引映射。

您可以使用并指定管道作为分隔符来加载数据,然后它允许您访问数据,以避免您自己进行“切换”操作