把创建的学生对象录入文件,在需要对信息进行操作时,读取数据。怎么进行修改啊?
用io的file
package managementSystem;
import java.util.ArrayList;
import java.util.Scanner;
public class system {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
//创建学生对象
Student s1 = new Student("202201","李一","男","数据科学与大数据技术","一班","401","2004.1","重庆");
Student s2 = new Student("202202","李二","男","数据科学与大数据技术","一班","401","2004.4","重庆");
Student s3 = new Student("202203","李三","男","数据科学与大数据技术","一班","401","2004.7","重庆");
Student s4 = new Student("202204","李四","男","数据科学与大数据技术","二班","402","2004.7","重庆");
Student s5 = new Student("202205","李五","女","数据科学与大数据技术","二班","402","2003.9","重庆");
Student s6 = new Student("202206","李六","男","数据科学与大数据技术","二班","402","2004.5","重庆");
Student s7 = new Student("202207","李七","女","计算机科学与技术","一班","403","2004.4","重庆");
Student s8 = new Student("202208","李八","男","计算机科学与技术","一班","403","2004.3","重庆");
Student s9 = new Student("202209","李九","男","计算机科学与技术","一班","403","2003.1","重庆");
Student s10 = new Student("202210","李十","男","计算机科学与技术","二班","404","2004.2","重庆");
Student s11 = new Student("202211","李十一","女","计算机科学与技术","二班","404","2004.3","重庆");
Student s12= new Student("202212","李十二","女","计算机科学与技术","二班","404","2003.5","重庆");
Student s13 = new Student("202213","李十三","女","计算机科学与技术","三班","405","2004.6","重庆");
Student s14 = new Student("202214","李十四","女","计算机科学与技术","三班","405","2004.1","重庆");
Student s15 = new Student("202215","李十五","女","计算机科学与技术","三班","405","2004.8","重庆");
//把学生添加到集合
list .add(s1);
list .add(s2);
list .add(s3);
list .add(s4);
list .add(s5);
list .add(s6);
list .add(s7);
list .add(s8);
list .add(s9);
list .add(s10);
list .add(s11);
list .add(s12);
list .add(s13);
list .add(s14);
list .add(s15);
start:
while (true) {
System.out.println("-----------------欢迎来到学生管理系统-------------------");
System.out.println("1:添加学生信息");
System.out.println("2:删除学生信息");
System.out.println("3:修改学生信息");
System.out.println("4:按专业班级查询学生信息");
System.out.println("5:按学号查询学生信息");
System.out.println("6:显示所有学生信息");
System.out.println("7:退出");
System.out.println("请输入您的选择:");
Scanner sc = new Scanner(System.in);
String choose = sc.next();
switch (choose) {
case "1":
Add.addStudent(list);
break;
case "2":
Delete.deleteStudent(list);
break;
case "3":
break;
case "4":
ccSearch.ccSearchStudent(list);
break;
case "5":
idSearch.viewStudent(list);
break;
case "6":
View.viewStudent(list);
break;
case "7":
{
System.out.println("退出");
break start;
}
default:
System.out.println("没有这个选项,请重新输入");
}
}
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话:针对您的问题,您需要使用Java的IO流将创建的学生对象录入到文件中,并且能够在需要对其信息进行操作时进行读取,同时还需要实现对文件中数据的修改操作。
具体步骤如下:
import java.io.Serializable;
public class Student implements Serializable{
private String name;
private int id;
private int age;
public Student(String name, int id, int age) {
this.name = name;
this.id = id;
this.age = age;
}
public String getName() {
return name;
}
public int getId() {
return id;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setId(int id) {
this.id = id;
}
public void setAge(int age) {
this.age = age;
}
}
import java.io.*;
public class StudentFile {
private File file;
public StudentFile(String filePath) {
file = new File(filePath);
}
public void save(Student student) {
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
out.writeObject(student);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public Student load() {
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
Student student = (Student) in.readObject();
in.close();
return student;
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
public void update(Student newStudent) {
try {
Student oldStudent = load();
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
out.writeObject(newStudent);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public class Main {
public static void main(String[] args) {
// 创建学生对象并存储到文件
Student student1 = new Student("张三", 1001, 20);
StudentFile fileHelper = new StudentFile("D://Student.txt");
fileHelper.save(student1);
// 从文件中读取学生对象
Student student2 = fileHelper.load();
System.out.println("学生姓名:" + student2.getName());
System.out.println("学生学号:" + student2.getId());
System.out.println("学生年龄:" + student2.getAge());
// 修改学生对象数据
Student student3 = new Student("李四", 1002, 22);
fileHelper.update(student3);
Student student4 = fileHelper.load();
System.out.println("修改后学生姓名:" + student4.getName());
System.out.println("修改后学生学号:" + student4.getId());
System.out.println("修改后学生年龄:" + student4.getAge());
}
}
以上就是一种基于Java IO流实现将学生对象写入文件并进行读取和修改的解决方案。