我有一个名为亚军类,它看起来是这样的:Java - 如何使用bufferedReader和Scanner将数据读入列表?
public class Runner
{
private static int nextNumber= 1;
private int number;
private String name;
private String ageGroup;
private int time;
public Runner()
{
super();
this.name = "";
this.ageGroup = "standard";
this.time = 0;
this.number = nextNumber++;
}
它还包括标准的getter和setter方法。 在另一个类中,我试图编写一个方法,用于从文本文件中读取数据并将数据分配给列表。我的方法目前看起来是这样的:
public void readInRunners()
{
String pathname = OUFileChooser.getFilename();
File aFile = new File(pathname);
Scanner bufferedScanner = null;
List<Runner> runners = new ArrayList<>();
try
{
String name;
int age;
String ageGroup;
Scanner lineScanner;
String currentLine;
bufferedScanner = new Scanner(new BufferedReader(new FileReader(aFile)));
while (bufferedScanner.hasNextLine())
{
currentLine = bufferedScanner.nextLine();
lineScanner = new Scanner(currentLine);
lineScanner.useDelimiter(",");
name = lineScanner.next();
age = lineScanner.nextInt();
if(age < 18)
{
ageGroup = ("junior");
}
else if(age >= 55)
{
ageGroup = ("senior");
}
else if(age >= 18 && age < 55)
{
ageGroup = ("standard");
}
runners.add(new Runner(name, ageGroup));
}
}
catch (Exception anException)
{
System.out.println("Error: " + anException);
}
finally
{
try
{
bufferedScanner.close();
}
catch (Exception anException)
{
System.out.println("Error: " + anException);
}
}
我在这条线得到一个错误:
runners.add(new Runner(name, ageGroup));
我知道那是因为不兼容的说法是没有编制,但我不知道该如何否则这句话。
任何意见将不胜感激。
它诚实地看起来像你的问题不是从文件读取。 –
只需要注意,你不需要'this.time = 0;','time'已经被初始化为'0'(int变量的默认值)。 – Berger