Odczytywanie pliku do tablicy wielowymiarowej

0

W moim mainie wywołuję sobie metody loadDbDir() i LoadDb()...

public static void main(String[] args)
    {
        Files.loadDbDir();
        Files.loadDb(Files.dbDir[0], 0);
    }//koniec konstruktora main

...które w klasie Files wyglądają tak:

    public static int dbSize = 5; //wielkość bazy danych postaci
    public static String[] dbDir = new String[dbSize];

    public static void loadDbDir() //wczytaj do tabeli ścieżki plików z informacjami o postaciach
    {
        dbDir[0] = "src\\Dane\\_16.txt";
        dbDir[1] = "src\\Dane\\_26.txt";
        dbDir[2] = "src\\Dane\\_40.txt";
        dbDir[3] = "src\\Dane\\_42.txt";
        dbDir[4] = "src\\Dane\\_44.txt";
    }

    public static int dbNumbersCount = 6; //ilość danych typu int na postać
    public static int[][] dbNumbers = new int[dbSize][dbNumbersCount]; //tabela z danymi typu int; każda postać w osobnej kolumnie

    public static void loadDb(String db, int j) //Wczytaj bazę danych postaci; String db - wybierz który plik odczytać, zmienna i przechowuje numer pliku w bazie
    {
        try
        {
            BufferedReader br = new BufferedReader(new FileReader(db));
            String textLine = br.readLine(); //odczytaj linię i zapisz do zmiennej

            int i = 0;

            while(i < 6) //czytaj tylko pierwsze 6 linii
            {
                dbNumbers[i][j] = Integer.parseInt(textLine); //wsadź do tablicy
                i++; //inkrementuj wiersz tablicy
                textLine = br.readLine(); //odczytaj kolejną linię i nadpisz zmienną
            }
            br.close(); //zamknij strumień
        }
        catch (Exception e)
        {
            System.err.println("Wystąpił błąd przy wczytywaniu pliku bazy danych");
            e.printStackTrace();
        }
    }//koniec metody loadDb

Problem polega na tym, że podczas uruchomienia programu rzuca zaimplementowany wyżej wyjątek i krzyczy, że "java.lang.ArrayIndexOutOfBoundsException: 5", wskazując na:

  • linię wywołania metody Files.loadDb w mainie,
  • linię gdzie odczytane z pliku i przekonwertowane stringi próbuję zapisać do tablicy dwuwymiarowej w klasie Files (początek pętli while).

Pomoże ktoś mi ogarnąć, gdzie ja tutaj przekraczam rozmiary tablicy? Rozwiązanie pewnie jest oczywiste, ale mam totalną pustkę na ten moment.

1

dbSize = 5 a wczytujesz 6 linii

1 użytkowników online, w tym zalogowanych: 0, gości: 1