Невозможно загрузить файл данных с ArrayList <Java> - PullRequest
0 голосов
/ 06 сентября 2018

В настоящее время я работаю над заданием по программированию для школы. Я часами работал над своим кодом, вместе с поиском ответа в Интернете, и мне не повезло.

По сути, мне дано восемь текстовых файлов, которые содержат несколько строк данных, таких как:

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

(порядок: имя, фамилия, десять оценок за домашнее задание, пять оценок по программе, две оценки по тесту и одна итоговая оценка)

У меня нет опыта работы с ArrayList, и я просматривал подобные проекты в Интернете, но не могу получить данные для печати в выходной файл. Я пытаюсь напечатать имена учеников в выходном файле, чтобы проверить, работает ли он, но единственное, что печатается, - это мой заголовок «FirstName». Я не могу получить данные для печати из моего loadArray.

Вот то, что я уже разработал в моей Главной:

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();

    }
}

1 Ответ

0 голосов
/ 06 сентября 2018

Массив 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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...