import java.io.*;
import java.util.Scanner;

class Student {
    String rollNumber;
    String name;
    String division;
    String address;

    public Student(String rollNumber, String name, String division, String address) {
        this.rollNumber = rollNumber;
        this.name = name;
        this.division = division;
        this.address = address;
    }

    public String toString() {
        return rollNumber + "," + name + "," + division + "," + address;
    }

    public static Student fromString(String record) {
        String[] parts = record.split(",");
        return new Student(parts[0], parts[1], parts[2], parts[3]);
    }
}

public class Main {

    private static final String FILE_NAME = "students.txt";

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("\nStudent Information System");
            System.out.println("1. Add Student");
            System.out.println("2. Delete Student");
            System.out.println("3. Display Student");
            System.out.println("4. Exit");
            System.out.print("Enter your choice: ");
            int choice = scanner.nextInt();
            scanner.nextLine(); // Consume newline character

            switch (choice) {
                case 1:
                    addStudent(scanner);
                    break;
                case 2:
                    deleteStudent(scanner);
                    break;
                case 3:
                    displayStudent(scanner);
                    break;
                case 4:
                    System.out.println("Exiting...");
                    System.exit(0);
                default:
                    System.out.println("Invalid choice. Please try again.");
            }
        }
    }

    public static void addStudent(Scanner scanner) {
        System.out.print("Enter Roll Number: ");
        String rollNumber = scanner.nextLine();
        System.out.print("Enter Name: ");
        String name = scanner.nextLine();
        System.out.print("Enter Division: ");
        String division = scanner.nextLine();
        System.out.print("Enter Address: ");
        String address = scanner.nextLine();

        Student student = new Student(rollNumber, name, division, address);
        
        try (BufferedWriter writer = new BufferedWriter(new FileWriter(FILE_NAME, true))) {
            writer.write(student.toString());
            writer.newLine();
            System.out.println("Student added successfully.");
        } catch (IOException e) {
            System.out.println("An error occurred while writing to the file.");
        }
    }

    public static void deleteStudent(Scanner scanner) {
        System.out.print("Enter Roll Number to delete: ");
        String rollNumber = scanner.nextLine();
        
        File file = new File(FILE_NAME);
        File tempFile = new File("temp.txt");

        try (BufferedReader reader = new BufferedReader(new FileReader(file));
             BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile))) {
            String line;
            boolean found = false;
            while ((line = reader.readLine()) != null) {
                Student student = Student.fromString(line);
                if (!student.rollNumber.equals(rollNumber)) {
                    writer.write(line);
                    writer.newLine();
                } else {
                    found = true;
                }
            }
            
            if (found) {
                file.delete();
                tempFile.renameTo(file);
                System.out.println("Student with roll number " + rollNumber + " deleted.");
            } else {
                System.out.println("Student with roll number " + rollNumber + " not found.");
            }
        } catch (IOException e) {
            System.out.println("An error occurred while deleting the student record.");
        }
    }

    public static void displayStudent(Scanner scanner) {
        System.out.print("Enter Roll Number to display: ");
        String rollNumber = scanner.nextLine();

        try (BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME))) {
            String line;
            boolean found = false;
            while ((line = reader.readLine()) != null) {
                Student student = Student.fromString(line);
                if (student.rollNumber.equals(rollNumber)) {
                    System.out.println("Student Details:");
                    System.out.println("Roll Number: " + student.rollNumber);
                    System.out.println("Name: " + student.name);
                    System.out.println("Division: " + student.division);
                    System.out.println("Address: " + student.address);
                    found = true;
                    break;
                }
            }
            
            if (!found) {
                System.out.println("Student with roll number " + rollNumber + " not found.");
            }
        } catch (IOException e) {
            System.out.println("An error occurred while reading the file.");
        }
    }
}