我遇到了fileIO问题。基本上,有一个名为Student的类,有一个名为readStudent的方法,它将返回一个ArrayList对象。
我被要求读取一个文件,并用一个空格将它们分成三部分, 并且不允许使用扫描仪。
文件:
艾米·摩尔60
Chloe Scott 40
我的问题是:(1)由于Student类只有两个参数(String,Double),如何将两个String和一个Double添加到Student中? (2)提供的Student类没有toString()方法,如何打印出来?
如果有人可以帮助我,我将不胜感激。
Student的构造函数是:
public Student(String sstudent, double mmark)
readStudent:
public static ArrayList<Student> readStudent(String fName){
到目前为止我所做的:
ArrayList<Student> list=new ArrayList<Student>();
try{
BufferedReader br=new BufferedReader(new FileReader(fName));
String line;
while((line=br.readLine())!=null){
String[] splitLine=line.split(" ");
String first=splitLine[0];
String second=splitLine[1];
Double third=Double.parseDouble(splitLine[3]);
Student stu=
new Student(first,second));
list.add(stu);
}
......
return list;
}
答案 0 :(得分:0)
针对您的问题(1)
Student s = new Student(first + " " + second, third);
//by the way for third,it is not splitLine[3],it is splitLine[2]
针对您的问题(2)
ArrayList<Student> studentList = readStudent("YourFileName");
for(Student s : studentList)
System.out.println(s.name + " " + s.grade);//don't know what are the variable names of Student class instances
答案 1 :(得分:0)
您在代码中有不同的选择:
//问题1(请参见上面的第一个注释):
如果由于某种原因不需要第一,第二和第三,请选择选项1(这很有效)。
$img_tag
//问题2:
在java中,getter和setter用于访问类的属性(这是首选样式)。检查班上有没有学生然后使用。
在选项2中,您可以访问学生对象的方向全局变量。
public static ArrayList<Student> readStudent(String fName) throws FileNotFoundException, IOException{
ArrayList<Student> list=new ArrayList<Student>();
//try{
BufferedReader br=new BufferedReader(new FileReader(fName));
String line;
while((line=br.readLine())!=null){
//option1
String[] splitLine=line.split(" ");
Student stu = new Student(splitLine[0] + " " + splitLine[1], splitLine[2]);
//option2
// String first=splitLine[0];
// String second=splitLine[1];
// double third=Double.parseDouble(splitLine[3]);
// Student stu = new Student(first + " " + second, third);
list.add(stu);
}
//......
return list;
}