泛型与File流实践:操作User类与文件处理

需积分: 0 0 下载量 73 浏览量 更新于2024-08-30 收藏 22KB DOCX 举报
在这个Java编程练习中,我们主要关注两个核心主题:泛型和File字节流的使用。首先,我们将探讨如何运用泛型设计一个基础的数据库访问对象DAO(Data Access Object),以支持常见的CRUD(Create, Read, Update, Delete)操作。 1. 泛型DAO类的设计 - 创建一个名为`DAO<T>`的泛型类,其中`T`代表任意类型,可以是自定义的对象,如`User`。类中包含一个`Map<String, T>`类型的成员变量,用于存储具有唯一标识`id`的对象。这个设计允许我们处理不同类型的实体对象,只需传递正确的类型参数即可。 ```java public class DAO<T> { private Map<String, T> map = new HashMap<>(); // 提供对应的方法实现 public void save(String id, T entity) { ... } public T get(String id) { ... } public void update(String id, T entity) { ... } public List<T> list() { ... } public void delete(String id) { ... } ``` 在这个类中,`save()`方法用于将新的`entity`对象与`id`关联起来,`get()`方法根据`id`检索对象,`update()`用于更新已有对象,`list()`返回所有对象列表,而`delete()`则移除指定`id`的对象。 2. 用户操作实践 - 我们定义了一个名为`User`的类,包含`id`(int)、`age`(int)和`name`(String)属性。然后创建`DAO<User>`实例,并通过调用各个方法来操作`User`对象,例如添加、获取、修改和删除用户。 3. 文件和目录操作 - 第二部分的需求涉及文件系统操作。首先,我们需要处理用户输入的文件夹路径,判断是文件还是目录,并进行相应处理。对于输入的非存在的路径,提供错误提示;对于文件路径,给出提示;对于目录路径,遍历并打印出所有`.java`文件名。 4. 文件数量统计 - 使用一个累加器变量跟踪文件数量,通过递归或迭代方式遍历目录结构,统计`.java`文件的数量,并将其输出。 5. 学生成绩管理 - 最后,我们构建一个工具类来处理学生数据,包括学生对象的描述和输入数据的解析。用户通过键盘输入包含姓名和三门课程成绩的数据,这些数据被用来创建学生对象,并存储在集合中。集合将按照总成绩排序,最后将所有学生信息写入磁盘文件`stud.txt`。 这个练习涵盖泛型的灵活运用以及Java中文件系统操作的基本操作,通过实际项目场景展示了如何结合这些概念来处理数据的增删改查和文件系统管理。同时,还涉及到了简单的数据输入解析和结果存储。这些知识点对于Java新手来说,不仅有助于理解基础语法,还能提升对面向对象编程和文件操作的理解。