java - 如何从java中的文本文件中提取具有列约束的行数据
问题描述
我正在开发基于 java Swing 的桌面应用程序,而不使用数据库(基于文件的应用程序)。每当我尝试提取指定的逐行数据时,约束都没有按预期工作。
我正在使用扫描仪逐行读取整个文本文件,但我正在努力为搜索功能提供约束。
你能给我一些关于如何使用列作为约束来提取行数据的建议吗?
例如:
SL.No|Name|Salary
1|ABC|1000
2|DEF|2000
3|GHI|1500
注意:这是我的文件结构,你能给我一些关于如何使用列作为约束来提取行数据的建议..(如名称)
解决方案
首先为数据创建包装类
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;
}
}
创建单独的类以从文件中获取数据
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;
}
}
最后像这样使用
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());
控制台输出
Ser=1 Name=ABC Salary=1000.0
Ser=2 Name=DEF Salary=2000.0
Ser=3 Name=GHI Salary=1500.0
推荐阅读
- android - 如何在firebase中完成搜索,即在每个节点和子节点甚至子节点内(如果可用)
- jekyll - Jekyll 主题是否接收安全更新?
- ethereum - Web3 web3.eth.sendSignedTransaction 无效参数
- python - dlib 已安装但无法在 spyder 或 anaconda 中导入
- reactjs - 异步函数未保存在数据库中
- javascript - 当我到达某个媒体查询时,如何将 4x3 网格转换为 3x4 网格?
- reactjs - 从外部控制可重用反应组件的内容
- python - Pandas - 用空值替换行并删除匹配两个条件的行
- reactjs - 如何测试可以将 html 元素的 ref 传递给它的反应钩子
- mysql - innodb 损坏的数据库 - 恢复事件和函数