【发布时间】:2015-12-30 10:09:52
【问题描述】:
我必须使用三个文本文件制作报告。所以我想到了将文件数据存储在数组中。这是我正在使用的文本文件。
UnitID UName RNo RName Lect RCapacity StuEnrolled
ECSC410; SDP01; 21; BreakRoom; Dr.Fo; 6; 4;
ECSI707; SDP02; 23; BreakRoom; Dr.Fu; 8; 3;
这是我的代码。我得到NoSuchElementException。我不明白为什么会这样。请帮我解决它。
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;
}
谢谢!
【问题讨论】:
-
您的文本文件中的某些行不能具有相同的列数!
-
第一行没有所有列
-
您的文本文件中是否有仅包含空格的行?可能是最后一行?
标签: java stringtokenizer nosuchelementexception