gpt4 book ai didi

java - 无法使用 ArrayList 加载数据文件

转载 作者:太空宇宙 更新时间:2023-11-04 10:11:54 25 4
gpt4 key购买 nike

我目前正在为学校做一项编程作业。我花了几个小时编写代码,并在网上搜索答案,但没有成功。

基本上,我得到了八个文本文件,其中包含几行数据,如下所示:

Henrietta   Andersen    8   10  9   10  10  9   7   9   6   10  65  80  89  24  73  95  59  78  115

(顺序为名字、姓氏、十个作业成绩、五个类(class)成绩、两个测试成绩和一个期末成绩)

我没有使用 ArrayList 的经验,并且我一直在网上查看类似的项目,但无法获取任何数据来打印到输出文件。我试图在输出文件中打印学生的名字以检查它是否正常工作,但唯一打印的是我的标题“FirstName”。我无法从我的 loadArray 中获取任何要打印的数据。

这是迄今为止我在 Main 中所做的工作:

package program1;

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.io.PrintStream;

public class Main {

private static ArrayList<Student> stud = new ArrayList<>();

public static void main(String[] args) {

PrintStream oFile = null;

try {
oFile = new PrintStream(new File("output.csv"));
oFile.println("FirstName");
for(int i = 0; i < stud.size(); i++)
{
oFile.println(stud.get(i).getStudFirstName());
}
} catch (FileNotFoundException ex) {
System.err.println("File not found");
System.exit(1);
}
}

public static void loadArray() {

Scanner fileIn = null;

try {
fileIn = new Scanner(new File("CS140-001.txt"));
} catch (FileNotFoundException ex) {
System.err.println("Error opening file");
System.exit(1);
}

int totalHomeworks = 9;
int totalPrograms = 5;
int totalTests = 1;

int[] hmwGrade = new int[totalHomeworks];
int[] programGrade = new int[totalPrograms];
int[] testGrade = new int[totalTests];

while (fileIn.hasNext()) {

Student student;

String fName = fileIn.next();
String lName = fileIn.next();

for (int i = 0; i < totalHomeworks; ++i) {
hmwGrade[i] = fileIn.nextInt();
}

for (int i = 0; i < totalPrograms; ++i) {
programGrade[i] = fileIn.nextInt();
}

for (int i = 0; i < totalTests; ++i) {
testGrade[i] = fileIn.nextInt();
}

int finalGrade = fileIn.nextInt();

student = new Student(fName, lName, new Grades(hmwGrade, programGrade, testGrade, finalGrade));
stud.add(student);
}

fileIn.close();

}
}

最佳答案

在开始将数据打印到输出文件之前,arraylist stud 尚未加载数据。

在开始打印到输出文件之前调用 loadArray()

public static void main(String[] args) {

PrintStream oFile = null;
try {
oFile = new PrintStream(new File("output.csv"));
oFile.println("FirstName");

// Load the array here with student's data
loadArray();
for(int i = 0; i < stud.size(); i++)
{
oFile.println(stud.get(i).getStudFirstName());
}
} catch (FileNotFoundException ex) {
System.err.println("File not found");
System.exit(1);
}
}

关于java - 无法使用 ArrayList <Java> 加载数据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52196207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com