Je dois faire un rapport en utilisant trois fichiers texte. J'ai donc pensé à stocker des données de fichier dans des tableaux. C'est le fichier texte que j'utilise.Obtenir NoSuchElementException
UnitID UName RNo RName Lect RCapacity StuEnrolled
ECSC410; SDP01; 21; BreakRoom; Dr.Fo; 6; 4;
ECSI707; SDP02; 23; BreakRoom; Dr.Fu; 8; 3;
Voici mon code. Je reçois le NoSuchElementException
. Je ne peux pas comprendre pourquoi cela arrive. Aidez-moi s'il vous plaît à le réparer.
public static ArrayList<String> getRecords() {
ArrayList<String> records = new ArrayList<>();
BufferedReader br;
try {
br = new BufferedReader(new FileReader("G:\\lecturer.txt"));
String line = br.readLine();
while (line != null){
line = br.readLine();
records.add(line);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Lecture.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Lecture.class.getName()).log(Level.SEVERE, null, ex);
}
return records;
}
public static ArrayList<Lecture> getLectureDetails(){
ArrayList<Lecture> lectureDetails = new ArrayList<>();
for (String record : getRecords()){
StringTokenizer token = new StringTokenizer(record, ";");
Lecture lecture = new Lecture();
while(token.hasMoreTokens()){
lecture.setUnitID(token.nextToken().trim());
lecture.setUnitName(token.nextToken().trim());
lecture.setRoomNo(token.nextToken().trim());
lecture.setRoomName(token.nextToken().trim());
lecture.setLecturerName(token.nextToken().trim());
lecture.setRoomCapacity(Integer.parseInt(token.nextToken().trim()));
lecture.setNoOfStudentsEnrolled(Integer.parseInt(token.nextToken().trim()));
lectureDetails.add(lecture);
}
}
return lectureDetails;
}
Merci!
Certaines lignes de votre fichier texte n'ont pas le même nombre de colonnes! –
la première ligne n'a pas toutes les colonnes – msangel
Avez-vous une ligne d'espace seulement dans votre fichier texte? Probablement, la dernière ligne? – dejvuth