Je suis vraiment intéressé d'avoir une méthode qui peut supprimer une ligne du fichier texte basé sur un id number
, mais je ne sais pas comment y parvenir.Comment supprimer une ligne du fichier texte basé sur "studentId"?
Le fichier students.txt
ressemble:
1111111,John Smith<br/>
7777777,Dave Smith
Voici ce que j'ai jusqu'à présent le code:
// class Student import java.io.*; public class Student implements Serializable
// class EnrollmentController
{
// instance variables
private int studentId;
private String name; /** * Constructor for objects of class Student */ public Student(int id, String name) { this.name = name; studentId = id; } public String getName() { return name; } public void setName(String newName) { name = newName; } public void setId(int newId) { studentId = newId; } public int getId() { return studentId; } }
import java.util.*; import java.io.*; public class EnrollmentController { private Student theStudent; private BufferedWriter writer; private BufferedReader reader; private final File studentFile = new File("students.txt"); private ArrayList students = new ArrayList(); /** * Constructor for objects of class EnrollmentController */ public EnrollmentController() { readFromStudentFile(); } public ArrayList getStudents() { return students; } public void addStudent(int id, String name) { students.add(new Student(id, name)); } public void printClassList(String courseId) { } public void writeToStudentFile(int id, String name) { try{ writer = new BufferedWriter(new FileWriter(studentFile, true)); writer.write(id + "," + name + "\n"); writer.flush(); writer.close(); } catch(IOException e){System.out.println(e);} } public void readFromStudentFile() { students = new ArrayList(); try{ reader = new BufferedReader(new FileReader(studentFile)); String line = reader.readLine(); while(line != null){ String[] record = line.split(","); int id = Integer.parseInt(record[0]); Student s = new Student(id, record[1]); students.add(s); line = reader.readLine(); } reader.close(); } catch(IOException e){ System.out.println(e); } } public Student findStudent(int id) { boolean found = false; Iterator it = students.iterator(); while (it.hasNext() && !found) { Student s = (Student)it.next(); if (s.getId() == id) { found = true; return s; } } return null; } { boolean found = false; { { found = true; } } } }
Basé sur le code source que vous avez fourni, et le niveau de la question, je suppose que vous ne l'avez pas fait au moins un effort résoudre le problème. Postez quels sont vos doutes spécifiques sur le code et qu'avez-vous déjà essayé. – OscarRyz