File_handling(oop-8)
File_handling(oop-8)
*;
import java.util.*;
class Student implements Serializable {
private String studentID;
private String name;
private int rollNo;
private String studentClass;
private int marks;
private String address;
public Student(String studentID, String name, int rollNo, String studentClass,
int marks, String address) {
this.studentID = studentID;
this.name = name;
this.rollNo = rollNo;
this.studentClass = studentClass;
this.marks = marks;
this.address = address;
}
public String getStudentID(){
return studentID;
}
public String getName(){
return name;
}
public int getRollNo(){
return rollNo;
}
public String getStudentClass(){
return studentClass;
}
public int getMarks(){
return marks;
}
public String getAddress(){
return address;
}
public String toString(){
return "Student ID: " + studentID + "\nName: " + name + "\nRoll No: " +
rollNo + "\nClass: " + studentClass + "\nMarks: " + marks + "\nAddress: " + address;
}
}
public class StudentDatabase{
private static final String FILE_NAME = "students.dat";
private List<Student> students;
public StudentDatabase(){
students = new ArrayList<>();
loadDatabase();
}
private void loadDatabase() {
try (ObjectInputStream ois = new ObjectInputStream(new
FileInputStream(FILE_NAME))) {
students = (List<Student>) ois.readObject();
}
catch (FileNotFoundException e) {
System.out.println("Database file not found. Starting with an empty
database.");
}
catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
private void saveDatabase() {
try (ObjectOutputStream oos = new ObjectOutputStream(new
FileOutputStream(FILE_NAME))) {
oos.writeObject(students);
}
catch (IOException e) {
e.printStackTrace();
}
}
public void createStudent(String studentID, String name, int rollNo, String
studentClass, int marks,String address) {
students.add(new Student(studentID, name, rollNo, studentClass, marks,
address));
saveDatabase();
}
public void displayStudents() {
for (Student student : students) {
System.out.println(student);
System.out.println("----------------------------");
}
}
public void deleteStudent(String studentID) {
students.removeIf(student -> student.getStudentID().equals(studentID));
saveDatabase();
}
public void updateStudent(String studentID, String name, int rollNo, String
studentClass, int marks,
String address) {
for (Student student : students) {
if (student.getStudentID().equals(studentID)) {
students.remove(student);
students.add(new Student(studentID, name, rollNo, studentClass,
marks, address));
break;
}
}
saveDatabase();
}
public void searchStudent(String studentID) {
for (Student student : students) {
if (student.getStudentID().equals(studentID)) {
System.out.println(student);
return;
}
}
System.out.println("Student not found.");
}
public static void main(String[] args) {
StudentDatabase db = new StudentDatabase();
Scanner scanner = new Scanner(System.in);
int choice;
do {
System.out.println("1. Create Student");
System.out.println("2. Display Students");
System.out.println("3. Delete Student");
System.out.println("4. Update Student");
System.out.println("5. Search Student");
System.out.println("6. Exit");
System.out.print("Enter your choice: ");
choice = scanner.nextInt();
scanner.nextLine();
switch (choice) {
case 1:
System.out.print("Enter Student ID: ");
String studentID = scanner.nextLine();
System.out.print("Enter Name: ");
String name = scanner.nextLine();
System.out.print("Enter Roll No: ");
int rollNo = scanner.nextInt();
scanner.nextLine();
System.out.print("Enter Class: ");
String studentClass = scanner.nextLine();
System.out.print("Enter Marks: ");
int marks = scanner.nextInt();
scanner.nextLine();
System.out.print("Enter Address: ");
String address = scanner.nextLine();
db.createStudent(studentID, name, rollNo, studentClass, marks,
address);
break;
case 2:
db.displayStudents();
break;
case 3:
System.out.print("Enter Student ID to delete: ");
studentID = scanner.nextLine();
db.deleteStudent(studentID);
break;
case 4:
System.out.print("Enter Student ID to update: ");
studentID = scanner.nextLine();
System.out.print("Enter Name: ");
name = scanner.nextLine();
System.out.print("Enter Roll No: ");
rollNo = scanner.nextInt();
scanner.nextLine();
System.out.print("Enter Class: ");
studentClass = scanner.nextLine();
System.out.print("Enter Marks: ");
marks = scanner.nextInt();
scanner.nextLine();
System.out.print("Enter Address: ");
address = scanner.nextLine();
db.updateStudent(studentID, name, rollNo, studentClass, marks,
address);
break;
case 5:
System.out.print("Enter Student ID to search: ");
studentID = scanner.nextLine();
db.searchStudent(studentID);
break;
case 6:
System.out.println("Exiting...");
break;
default:
System.out.println("Invalid choice. Please try again.");
}
} while (choice != 6);
scanner.close();
}
}
OUTPUT :-
1. Create Student
2. Display Students
3. Delete Student
4. Update Student
5. Search Student
6. Exit
Enter your choice: 1
Enter Student ID: 101
Enter Name: xyz
Enter Roll No: 36
Enter Class: SE
Enter Marks: 98
Enter Address: qwerty
1. Create Student
2. Display Students
3. Delete Student
4. Update Student
5. Search Student
6. Exit
Enter your choice: 1
Enter Student ID: 102
Enter Name: abc
Enter Roll No: 49
Enter Class: SE
Enter Marks: 99
Enter Address: wasd
1. Create Student
2. Display Students
3. Delete Student
4. Update Student
5. Search Student
6. Exit
Enter your choice: 2
Student ID: 101
Name: xyz
Roll No: 36
Class: SE
Marks: 98
Address: qwerty
----------------------------
Student ID: 102
Name: abc
Roll No: 49
Class: SE
Marks: 99
Address: wasd
----------------------------
1. Create Student
2. Display Students
3. Delete Student
4. Update Student
5. Search Student
6. Exit
Enter your choice: 4
Enter Student ID to update: 102
Enter Name: pqr
Enter Roll No: 46
Enter Class: TE
Enter Marks: 89
Enter Address: zxt
1. Create Student
2. Display Students
3. Delete Student
4. Update Student
5. Search Student
6. Exit
Enter your choice: 5
Enter Student ID to search: 102
Student ID: 102
Name: pqr
Roll No: 46
Class: TE
Marks: 89
Address: zxt
1. Create Student
2. Display Students
3. Delete Student
4. Update Student
5. Search Student
6. Exit
Enter your choice: 3
Enter Student ID to delete: 101
1. Create Student
2. Display Students
3. Delete Student
4. Update Student
5. Search Student
6. Exit
Enter your choice: 2
Student ID: 102
Name: pqr
Roll No: 46
Class: TE
Marks: 89
Address: zxt
----------------------------
1. Create Student
2. Display Students
3. Delete Student
4. Update Student
5. Search Student
6. Exit
Enter your choice: 6
Exiting...