import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class FileParser {
public static void main(String[] args) {
String fileName = "path/to/your/file.txt";
List<Bean> beanList = parseFile(fileName);
int totalRecords = beanList.size();
System.out.println("Total records: " + totalRecords);
}
public static List<Bean> parseFile(String fileName) {
List<Bean> beanList = new ArrayList<>();
int totalRecords = -1;
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
String line;
String[] headers = null;
while ((line = reader.readLine()) != null) {
String[] values = line.split("\\|");
if (headers == null) {
headers = values;
} else {
Bean bean = createBean(headers, values);
beanList.add(bean);
}
if (line.startsWith("Total ")) {
String[] totalRecordsInfo = line.split(" ");
totalRecords = Integer.parseInt(totalRecordsInfo[1]);
}
}
System.out.println("Total records: " + totalRecords);
} catch (IOException e) {
e.printStackTrace();
}
return beanList;
}
public static Bean createBean(String[] headers, String[] values) {
Bean bean = new Bean();
for (int i = 0; i < headers.length; i++) {
String header = headers[i];
String value = (i < values.length) ? values[i] : "";
switch (header) {
case "header1":
bean.setHeader1(value);
break;
case "header2":
bean.setHeader2(value);
break;
case "header3":
bean.setHeader3(value);
break;
case "header4":
bean.setHeader4(value);
break;
}
}
return bean;
}
}
class Bean {
private String header1;
private String header2;
private String header3;
private String header4;
}