package com.hotel; import com.pojo.Food; import java.util.HashMap; public class FoodData { public static HashMap<String, Food> foodHashMap = new HashMap(); public static HashMap<String, Food> menu = new HashMap(); public FoodData() { } static { Food food = new Food(2001, "小炒肉", "微辣", 19.0); Food food1 = new Food(2002, "宫保鸡丁", "微辣", 14.0); Food food2 = new Food(2003, "麻婆豆腐", "微辣", 16.0); Food food3 = new Food(2004, "水煮肉片", "微辣", 14.0); Food food4 = new Food(2005, "回锅肉", "微辣", 19.0); foodHashMap.put(food.getId() + "", food); foodHashMap.put(food1.getId() + "", food1); foodHashMap.put(food2.getId() + "", food2); foodHashMap.put(food3.getId() + "", food3); foodHashMap.put(food4.getId() + "", food4); } } 修改成打开文件的方式
时间: 2023-12-17 21:05:34 浏览: 93
这段代码是一个简单的菜品数据类,使用了Java中的HashMap来存储菜品信息。要修改成打开文件的方式,需要先定义一个文件,然后读取文件中的数据并存储到HashMap中。
下面是修改后的代码:
```java
package com.hotel;
import com.pojo.Food;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
public class FoodData {
public static HashMap<String, Food> foodHashMap = new HashMap();
public static HashMap<String, Food> menu = new HashMap();
public FoodData() {
// 读取文件中的数据并存储到HashMap中
try (BufferedReader reader = new BufferedReader(new FileReader("food.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
String[] fields = line.split(",");
int id = Integer.parseInt(fields[0]);
String name = fields[1];
String spicyLevel = fields[2];
double price = Double.parseDouble(fields[3]);
Food food = new Food(id, name, spicyLevel, price);
foodHashMap.put(food.getId() + "", food);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们使用了Java中的文件读取类BufferedReader来读取一个名为"food.txt"的文件。文件中每一行是一个菜品的信息,用逗号分隔。我们使用split方法将每行数据分割成字段,并将其转换成对应的数据类型,然后创建一个Food对象并存储到HashMap中。
这样,我们就成功地将原来的HashMap数据从代码中移动到了外部文件中,并且可以通过修改文件内容来修改菜品信息。
阅读全文