Java~IO输入输出流练习题项目 (优化后的)教师信息类管理 (实现五中查询方法 修改信息方法 增加教师方法 删除教师方法 和批量处理教师方法)(1)

蜂信物联FastBee平台https://gitee.com/beecue/fastbee

阿里资料开源项目https://gitee.com/vip204888

百度低代码前端框架https://gitee.com/baidu/amis

OpenHarmony开源项目https://gitcode.com/openharmony

仓颉编程语言开放项目https://gitcode.com/Cangjie

https://blog.csdn.net/Shangxingya/article/details/105563387**

这篇博客主要讲我的设计思路:

**先写俩个方法 为给接下来的数个方法做铺垫。

一是获取文本所有数据 返回一个Teacher对象链表,二是实现覆盖式输出文本**。

我的五种不同的查询方法其实就是对Teacher对象链表的遍历处理(判断某个属性是否相等)。

修改信息方法也是对Teacher对象链表的遍历处理(用一个新的对象覆盖旧的对象),然后覆盖式输出文本。

增加教师方法就直接给文本输出一个新的Teacher对象即可。

删除教师方法还是对Teacher对象链表的遍历(直接删除某个对象),然后覆盖式输出文档。

批量处理教师就是对单个实现方法的多次调用。

import java.io.*;

import java.util.ArrayList;

import java.util.Objects;

class Teacher {

public String classID;//班级编号

public String name;//姓名

public String sex;//性别

public String major;//主修专业

public String teacherID;//教师编号

public Teacher(String classID, String name, String sex, String major, String teacherID) {

this.classID = classID;

this.name = name;

this.sex = sex;

this.major = major;

this.teacherID = teacherID;

}

@Override

public String toString() {

return classID +“,” + name + “,” + sex + “,” + major + “,” + teacherID;

}

@Override

public boolean equals(Object o) {

if (this == o) return true;

if (o == null || getClass() != o.getClass()) return false;

Teacher teacher = (Teacher) o;

return Objects.equals(classID, teacher.classID) &&

Objects.equals(name, teacher.name) &&

Objects.equals(sex, teacher.sex) &&

Objects.equals(major, teacher.major) &&

Objects.equals(teacherID, teacher.teacherID);

}

}

public class TeacherDeal {

//获取所有教师链表

public ArrayList findAllTeacher() throws IOException{

ArrayList allTeacher = new ArrayList<>();

FileReader fR = new FileReader(“E:\teacher.txt”);

BufferedReader bR = new BufferedReader(fR);

String str = bR.readLine();

while(str != null) {

String[] strs = str.split(“,”);

allTeacher.add(new Teacher(strs[0], strs[1],strs[2], strs[3], strs[4]));

str = bR.readLine();

}

bR.close();

fR.close();

return allTeacher;

}

//覆盖式读入

private void writeToTxT(ArrayList newAllTeacher) throws IOException{

if(newAllTeacher == null) {

return;

}

FileWriter fW = new FileWriter(“E:\teacher.txt”);

BufferedWriter bW = new BufferedWriter(fW);

for (Teacher teacher: newAllTeacher ) {

String str = teacher.toString();

bW.write(str);

bW.newLine();

}

bW.close();

fW.close();

}

//通过教室编号查询代课教师

public Teacher findTeacherByCalssID(String classID)throws IOException {

ArrayList allTeacher = findAllTeacher();

for(Teacher temp : allTeacher) {

if(temp.classID.equals(classID)) {

return temp;

}

}

return null;

}

//通过名字查询教师

public Teacher findTeacherByName(String name)throws IOException {

ArrayList allTeacher = findAllTeacher();

for(Teacher temp : allTeacher) {

if(temp.name.equals(name)) {

return temp;

}

}

return null;

}

//通过性别查询教师

public Teacher[] findTeacherBySex(String sex) throws IOException {

ArrayList allTeacher = findAllTeacher();

ArrayList result = new ArrayList<>();

for(Teacher temp : allTeacher) {

if(temp.sex.equals(sex)) {

result.add(temp);

}

}

return result.toArray(new Teacher[0]);

}

//通过主修专业查询代课教师

public Teacher findTeacherByMajor(String major)throws IOException {

ArrayList allTeacher = findAllTeacher();

for(Teacher temp : allTeacher) {

if(temp.major.equals(major)) {

return temp;

}

}

return null;

}

//通过教师编号查询教师

public Teacher findTeacherByTeacherID(String teacherID) throws IOException{

ArrayList allTeacher = findAllTeacher();

for(Teacher temp : allTeacher) {

if(temp.teacherID.equals(teacherID)) {

return temp;

}

}

return null;

}

//通过教师编号找打这个教师然后修改这个教师信息

public void reviseTeacherInfor(Teacher teacher) throws IOException {

if(teacher == null) {

return;

}

ArrayList allTeacher = findAllTeacher();

Teacher oldTeacher = findTeacherByTeacherID(teacher.teacherID);

if(oldTeacher == null) {

return;

}

allTeacher.set(allTeacher.indexOf(oldTeacher), teacher);

writeToTxT(allTeacher);

}

//批量修改教师信息

public void reviseTeachersInfors(Teacher[] teachers) throws IOException {

if(teachers == null) {

return;

}

for(Teacher teacher : teachers) {

reviseTeacherInfor(teacher);

}

}

//新增加教师

public void addTeacher(Teacher teacher) throws IOException {

if(teacher == null) {

return;

总结

虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。

架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。

如果你也想成为一名好的架构师,那或许这份Java成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。

image

r(Teacher teacher) throws IOException {

if(teacher == null) {

return;

总结

虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。

架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。

如果你也想成为一名好的架构师,那或许这份Java成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。

[外链图片转存中…(img-lq2aCgXd-1725152944394)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值