在Java中从文件读取的格式
我有一个文件,我应该从中创建类模型的实例:在Java中从文件读取的格式,java,regex,Java,Regex,我有一个文件,我应该从中创建类模型的实例: class Model{ private a; private b; public Model1(double a, double b){ this.a=a; this.b=b; } } 该文件如下所示: .... some lines .... <Model> a=1.564 b=57.789 <Mod
class Model{
private a;
private b;
public Model1(double a, double b){
this.a=a;
this.b=b;
}
}
该文件如下所示:
....
some lines
....
<Model>
a=1.564
b=57.789
<Model>
.....
<Model>
a=10.56
b=35.99
<Model>
.....
那么,我应该如何从文件中读取
a
和b
。您可以使用json、键/值、序列化或XML格式的文件来读取和写入数据
这是操作xml文件最简单的方法之一。不使用任何xml库
private class Model{
private int a;
private int b;
//getters and setters
}
public List<Model> readModels(Scanner s){
List<Model> list = new ArrayList<>();
while(s.hasNextLine()){
if(s.nextLine().equals("<Model>")){
String valsA[] = s.nextLine().split("=");
String valsB[] = s.nextLine().split("=");
list.add(new Model(valsA[1],valsB[1]));
}
}
return list;
}
私有类模型{
私人INTA;
私人INTB;
//接球手和接球手
}
公共列表readModels(扫描仪){
列表=新的ArrayList();
而(s.hasNextLine()){
如果(s.nextLine().equals(“”){
字符串valsA[]=s.nextLine().split(“=”);
字符串valsB[]=s.nextLine().split(“=”);
增加(新型号(valsA[1],valsB[1]);
}
}
退货清单;
}
您的文件看起来像被黑客攻击的XML;我认为你找不到一个好的图书馆来读那本书。您必须自己实现它。@Dave我在Scanner
类中找到了next(Pattern Pattern)
方法。这里可以使用它吗?…或json,或键/值,或序列化,或自定义格式,等等。非常容易受到不一致文件(和缩进)的影响,OP似乎也在关闭模型部分,但除此之外,这可能是最简单的方法。是的,这只是一个简单的快速实现,但它非常密集:D
private class Model{
private int a;
private int b;
//getters and setters
}
public List<Model> readModels(Scanner s){
List<Model> list = new ArrayList<>();
while(s.hasNextLine()){
if(s.nextLine().equals("<Model>")){
String valsA[] = s.nextLine().split("=");
String valsB[] = s.nextLine().split("=");
list.add(new Model(valsA[1],valsB[1]));
}
}
return list;
}