代码编写要求: (1) 任务1位于StarSet类,读取starset.conf 配置文件,将每行泡泡糖设置信息列表放入List<StarSet>中;
时间: 2024-09-06 20:04:59 浏览: 27
在Java中,为了完成这个任务,你可以首先定义一个`StarSet`类,包含颜色和数量的相关属性,然后按照下面的步骤编写代码:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
// 定义 StarSet 类
class StarSet {
String color;
int quantity;
// 构造函数和 getter/setter 省略...
}
public class Task1 {
public static void main(String[] args) {
List<StarSet> starSets = readConfig("starset.conf");
}
// 从配置文件读取数据并填充星集列表的方法
private static List<StarSet> readConfig(String configFile) {
List<StarSet> starSetList = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader(configFile))) {
String line;
while ((line = br.readLine()) != null) {
String[] parts = line.split(":");
if (parts.length == 2) { // 检查是否为有效格式
String color = parts[0].trim();
int quantity = parseQuantity(parts[1]); // 解析数量部分
StarSet starSet = new StarSet(color, quantity);
starSetList.add(starSet);
}
}
} catch (IOException e) {
System.err.println("Error reading file: " + e.getMessage());
}
return starSetList;
}
// 将字符串转换成整数,若超过10则截断为10
private static int parseQuantity(String str) {
int quantity = Integer.parseInt(str);
if (quantity > 10) {
quantity = 10;
}
return quantity;
}
}
```
这段代码首先定义了`StarSet`类,然后在`Task1`类的`readConfig`方法里,通过`BufferedReader`逐行读取配置文件,根据冒号分割每个条目,提取颜色和数量,创建`StarSet`对象并添加到列表中。`parseQuantity`方法用于处理泡泡糖数量的上限。
阅读全文