You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从文件读取内容创建Room类对象?已用BufferedReader分割内容

解决方案

先修正你代码里的变量名错误——你把BufferedReader实例命名为myfile,但读取时却调用了thefile.readLine(),后面还用到未定义的file,这会直接触发编译报错。

接下来按你的需求实现Room对象的创建逻辑:

  • 分割后的数组中,array[2]就是Room构造方法需要的描述文本
  • 可以用Map<String, Room>来存储创建好的对象,用array[1](比如示例里的home)作为键,方便后续通过标识名快速获取对象
  • 增加格式校验和异常处理,避免文件行格式错误或IO问题导致程序崩溃

修正后的完整代码如下:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class RoomLoader {
    public static void main(String[] args) {
        // 存储Room对象,键为房间标识(如home)
        Map<String, Room> roomMap = new HashMap<>();
        String filePath = "你的实际文件路径"; // 替换成你的文件路径

        // try-with-resources自动关闭流,避免资源泄漏
        try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
            String line;
            while ((line = reader.readLine()) != null) {
                String[] parts = line.split(",");
                // 校验行格式是否符合预期
                if (parts.length >= 3) {
                    String roomKey = parts[1].trim();
                    String roomDesc = parts[2].trim();
                    // 创建Room对象并存入Map
                    Room room = new Room(roomDesc);
                    roomMap.put(roomKey, room);
                } else {
                    System.err.println("无效的文件行:" + line);
                }
            }

            // 测试获取对象
            Room home = roomMap.get("home");
            if (home != null) {
                System.out.println(home.getDescription());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

// 假设你的Room类定义如下
class Room {
    private String description;

    public Room(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }
}

核心说明:

  • 用try-with-resources语法管理IO流,无需手动关闭资源
  • 增加格式校验,防止文件中出现不符合类型,标识,描述格式的行引发数组越界
  • 通过Map存储对象,能灵活通过标识名调用对应Room实例

内容的提问来源于stack exchange,提问作者First_1st

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 05:05:14