我有一个shapes.txt文件,其中包含以下数据:
Circle:15;
Rectangle:5,8;
Triangle:4,10,10;
在Java程序中,我有一个Shapes接口,应该将其用于计算每个形状的面积(该接口包含一种方法calcArea()
)。我应该阅读文件,然后创建对象数组并为每个对象调用calcArea方法,以便它将计算面积(多态性)。
我不知道该如何实现,因此,这是我编写的用于从文件读取数据的代码(我认为这不是一个好习惯……):
in = new BufferedReader(new FileReader(new File(loc)));
String line = in.readLine();
StringBuffer buf = new StringBuffer(line);
String s1 = buf.substring(buf.lastIndexOf(":") + 1);
if (line.contains("Circle")) {
Circle circle = new Circle(Integer.parseInt(s1));
}
对于矩形:
else if (line.contains("Rectangle")) {
String[] a = ((line.substring(line.lastIndexOf(":") + 1)).split(","));
int arf = Integer.parseInt(a[0]);
int ars = Integer.parseInt(a[1]);
Rectangle rect = new Rectangle(arf, ars);
}
也许我需要创建一个不同的方法,该方法将返回Shapes类型的对象,但是如果以这种方式启动,我将不知道如何从文件中读取值,因此将其提供给构造函数每个Shapes类型的对象。
如果有任何意见和帮助,我将不胜感激。