Java 从.txt文件中的多行创建对象
我的问题是: 我有一个具有这种结构的txt文件:Java 从.txt文件中的多行创建对象,java,Java,我的问题是: 我有一个具有这种结构的txt文件: 20:00 Norwich Res-Milton K. 2.45 3.30 2.45 20:30 Everton Res-Blackpool 2.24 3.25 2.73 我想要的是读取文本文件,并从其中的数据创建对象。我需要的一个对象是ie(一个对象的字段): 我从txt读取数据的方法: public ArrayList<Match> getMatches(){ try{ File f
20:00 Norwich Res-Milton K.
2.45
3.30
2.45
20:30 Everton Res-Blackpool
2.24
3.25
2.73
我想要的是读取文本文件,并从其中的数据创建对象。我需要的一个对象是ie(一个对象的字段):
我从txt读取数据的方法:
public ArrayList<Match> getMatches(){
try{
File file = new File("matches.txt");
FileReader readerF = new FileReader(file);
BufferedReader reader = new BufferedReader(readerF);
String line = null;
while((line = reader.readLine()) !=null){
//here i dont know what to do
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null, "");
}
return matches;
}
提示:
“//我不知道该怎么做”
的逻辑应该是这样的:
public ArrayList getMatches(){
试一试{
File File=新文件(“matches.txt”);
FileReader readerF=新的FileReader(文件);
BufferedReader reader=新的BufferedReader(readerF);
字符串行=null;
字符串matchName=null;
双程1;
双courseX;
双程;
ArrayList matches=新的ArrayList();
整数计数=0;
而((line=reader.readLine())!=null){
如果(计数%4==3){
匹配=新匹配(行、course1、courseX、courseY);
匹配。添加(匹配);
}否则如果(计数%4==2){
courseY=Double.parseDouble(行);
}否则如果(计数%4==1){
courseX=Double.parseDouble(行);
}否则{
course1=Double.parseDouble(行);
}
计数++;
}
}
捕获(例外e){
showMessageDialog(null,“”);
}
返回比赛;
}
抓取每一行,如果该行包含“:”你知道你在一个新对象的开头。取那一行,并用它来构造一个新对象以及它的其他变量的下三行。一种可能是:if(line.contains(“:”)String tempStr=line;else-double-tempDbl=double.parseDouble(line.trim())代码>注意:这取决于文件结构,确保所有案例都已处理。此外,还需要打印/存储临时变量,因为它们会失去作用域。我需要用else指令替换第一个if指令,但无论如何:它可以工作。谢谢!
public ArrayList<Match> getMatches(){
try{
File file = new File("matches.txt");
FileReader readerF = new FileReader(file);
BufferedReader reader = new BufferedReader(readerF);
String line = null;
while((line = reader.readLine()) !=null){
//here i dont know what to do
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null, "");
}
return matches;
}
public class Match {
private String matchName;
private double course1;
private double courseX;
private double courseY;
public Match(String matchName, double course1, double courseX, double courseY){
this.matchName=matchName;
this.course1=course1;
this.courseX=courseX;
this.courseY=courseY;
}
}
public ArrayList<Match> getMatches(){
try{
File file = new File("matches.txt");
FileReader readerF = new FileReader(file);
BufferedReader reader = new BufferedReader(readerF);
String line = null;
String matchName = null;
double course1;
double courseX;
double courseY;
ArrayList<Match> matches = new ArrayList<>();
int count = 0;
while((line = reader.readLine()) !=null){
if (count%4 == 3) {
Match match = new Match(line, course1, courseX, courseY);
matches.add(match);
} else if (count%4 == 2) {
courseY = Double.parseDouble(line);
} else if (count%4 == 1) {
courseX = Double.parseDouble(line);
} else {
course1 = Double.parseDouble(line);
}
count++;
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null, "");
}
return matches;
}