First create wrapper class for data
public class Data
{
private int serialNo;
private String name;
private double salary;
public int getSerialNo()
{
return this.serialNo;
}
public void setSerialNo(int serialNo)
{
this.serialNo = serialNo;
}
public String getName()
{
return this.name;
}
public void setName(String name)
{
this.name = name;
}
public double getSalary()
{
return this.salary;
}
public void setSalary(double salary)
{
this.salary = salary;
}
}
Create separate class for fetching data from file
public class Parser
{
private File file;
private BufferedReader bufferedReader;
public Parser(File file)
{
this.file = file;
}
public ArrayList<Data> parse() throws IOException
{
ArrayList<Data> dataList = new ArrayList<>();
bufferedReader = new BufferedReader(new FileReader(file));
//skip first line as it contains colums
bufferedReader.readLine();
String line = "";
while((line = bufferedReader.readLine()) !=null)
{
String[] tokens = line.split("\\|");
Data data = new Data();
data.setSerialNo(Integer.valueOf(tokens[0]));
data.setName(tokens[1]);
data.setSalary(Double.valueOf(tokens[2]));
dataList.add(data);
}
return dataList;
}
}
Finally Use like this
Parser parser = new Parser(new File("data.txt"));
ArrayList<Data> dataList = parser.parse();
for(Data data : dataList)
System.out.println("Ser="+ data.getSerialNo() + " Name=" + data.getName() + " Salary=" + data.getSalary());
Console output
Ser=1 Name=ABC Salary=1000.0
Ser=2 Name=DEF Salary=2000.0
Ser=3 Name=GHI Salary=1500.0