import java.io.*; import java.util.*; public class MemberDAOImpl implements MemberDAO { private final String filePath; private final List members = new ArrayList<>(); public MemberDAOImpl(String filePath) { this.filePath = filePath; load(); } private void load() { try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { br.readLine(); // skip header String line; while ((line = br.readLine()) != null) { String[] arr = line.split(","); members.add(new Member(arr[0], arr[1])); } } catch (IOException e) { e.printStackTrace(); } } @Override public List getAllMembers() { return members; } @Override public Member getById(String id) { return members.stream() .filter(m -> m.getId().equals(id)) .findFirst().orElse(null); } @Override public void addMember(Member member) { members.add(member); } @Override public void saveAll() { try (PrintWriter pw = new PrintWriter(new FileWriter(filePath))) { pw.println("ID,Name"); for (Member m : members) { pw.println(m.getId() + "," + m.getName()); } } catch (IOException e) { e.printStackTrace(); } } }