Java for loop not incrementing


BufferedReader inputStream = null;
String fileLine;
int employeeCount = 1;
String[] years = new String[2];
//Employee[] employees = new Employee[employeeCount + 1];
List<Employee> employees = new ArrayList<>();
File myFile = new File("src/project1/data.txt");
//System.out.println("Attempting to read from file in: "+ myFile.getCanonicalPath());
try {
FileInputStream fstream = new FileInputStream(myFile);
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null)   {
String[] data = strLine.split(" ");
//while ( int i < employees.length ) {
for (int i=1; i < employees.size(); i++ ) {
if (data[1].equals("Executive")) {
employees.add( new Executive(data[0],data[1],data[2], Integer.parseInt(data[3]), Integer.parseInt(data[4])) );
} else if (data[1].equals("Salesman")) {
employees.add( new Salesman(data[0],data[1],data[2], Integer.parseInt(data[3]), Integer.parseInt(data[4])) );
} else {
employees.add( new Employee(data[0],data[1],data[2], Integer.parseInt(data[3])) );
}
//System.out.println(employees[i].toString());
System.out.println(i +" " + employeeCount);
employeeCount++;
}
}
for (int y=1; y < employees.size(); y++ ) {
System.out.println(employees.get(y).getName());
}
//System.out.println(employees.toString());
} catch (IOException io) {
System.out.println("File IO exception" + io.getMessage());
}

EmployeeCount按预期递增,但i始终为 1 - 我在这里缺少什么? 文本文件使用 while 循环逐行读取 - for 循环检查第二条数据是否与字符串匹配,并根据匹配创建对象。我在这里有意义吗?

for 循环不会递增,因为在第一次迭代后条件为 false:

for (int i=1; i < employees.length; i++ ) {

也就是说,employees.length是 2,因为employeeCount是这一行的一个(我必须假设,因为代码不完整):

Employee[] employees = new Employee[employeeCount + 1];

此行创建一个具有两个位置的数组,因为employeeCount + 1为 2。大小不会随着employeeCount的增加而自动调整...

我建议使用列表而不是数组,因为列表会根据需要扩展:

List<Employee> employees = new ArrayList<>();
...
employees.add(new Employee(...));