我正在尝试从名为" Marks.txt"的.txt文件中读取文本。 (我附上了这里的文件 - > Marks.txt),其中包含学生数据, Like this, thefirst 2 rows are headers or just labels for the data
前两行只是上面所述的标题或标签,我试图跳过或忽略这些行,因为我只需要从.txt文件中的实际int和float数据创建对象。这是学生类中的 loadFrom 方法:
public static Student loadFrom2(BufferedReader aFile) throws IOException {
Student newStudent = new Student();
StringTokenizer st = new StringTokenizer(aFile.readLine());
newStudent.ID = Integer.parseInt(st.nextToken());
newStudent.a1 = Float.parseFloat(st.nextToken());
newStudent.a2= Float.parseFloat(st.nextToken());
newStudent.a3 = Float.parseFloat(st.nextToken());
newStudent.a4 = Float.parseFloat(st.nextToken());
newStudent.midterm = Float.parseFloat(st.nextToken());
newStudent.finalExam = Float.parseFloat(st.nextToken());
return (newStudent);
}
这是我的测试文件,它读取数据:
private static void readTest2() throws IOException {
BufferedReader file1;
Student student1;
String line;
file1 = new BufferedReader(new FileReader("C:\\Marks.txt"));
student1 = Student.loadFrom2(file1);
System.out.println(student1);
}
public static void main(String[] args) throws IOException {
readTest2();
}
我使用了Marks.txt文件并删除了前两行(标题或列标签),并且能够在我的loadFrom2方法中正确使用BufferedReader和StringTokenizer来读取.txt文件我的readTest2文件。
你们任何人都可以告诉我如何跳过前2行吗?我应该从Marks.txt中读取并在loadFrom2方法中为Marks.txt文件中的每一行数据创建一个Student对象。我应该有一个名为 CourseSection 的另一个类,它有一个来自上一个类的对象的ArrayList。
如果我需要澄清任何事情,请告诉我。如果您想看到以下是完整的类文件:
StudentSaveLoadTest *测试阅读Marks.txt文件
答案 0 :(得分:0)
您可以使用BufferedReader.readLine()
来消费输入行,而不必对其执行任何操作。
也许将您的代码更改为以下内容:
public static Student loadFrom2(String studentLine) throws IOException {
Student newStudent = new Student();
StringTokenizer st = new StringTokenizer(studentLine);
newStudent.ID = Integer.parseInt(st.nextToken());
newStudent.a1 = Float.parseFloat(st.nextToken());
newStudent.a2 = Float.parseFloat(st.nextToken());
newStudent.a3 = Float.parseFloat(st.nextToken());
newStudent.a4 = Float.parseFloat(st.nextToken());
newStudent.midterm = Float.parseFloat(st.nextToken());
newStudent.finalExam = Float.parseFloat(st.nextToken());
return (newStudent);
}
private static void readTest2() throws IOException {
BufferedReader file1 = new BufferedReader(new FileReader("C:\\Marks.txt"));
file1.readLine();
file1.readLine();
String line = file1.readLine();
while(line != null){
Student student1 = Student.loadFrom2(line);
System.out.println(student1);
line = file1.readLine();
}
}