zapis ,odczyt binarny

0

Napisać program, który:
• generuje (z użyciem generatora liczb pseudolosowych) 2-wymiarową tablicę (macierz) liczb rzeczywistych,
• zapisuje tablicę do pliku binarnego wg schematu: liczba wierszy (jako int), liczba kolumn (jako int),
kolejne elementy tablicy (jako ciąg liczb double),
• odczytuje macierz z pliku do tablicy w pamięci i wyświetla ją na ekranie w sposób sformatowany,
wierszami oraz wyświetla element macierzy o wartości maksymalnej (wraz z jego indeksami).


```public class bin {
    public static void main (String[]args) throws  IOException{
        Random los=new Random();
        double[][] mac= new double[8][4];
        for (double[] mac1 : mac) {
            for (int j = 0; j < mac1.length; j++) {
                mac1[j] = los.nextDouble()*100;
                System.out.println(mac1[j]);
            }
        }
        String nazwapliku="zapisbinarny.txt";
             

        try (DataOutputStream za = new DataOutputStream(new FileOutputStream(nazwapliku))) {
            za.writeInt(mac.length);
            za.writeInt(mac[8].length);
            for (double[] mac1 : mac) {
                for (int j = 0; j < mac1.length; j++) {
                    za.writeDouble(mac1[j]);
                }
            }
        }
wyskakuje bład: 
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
1

błąd jest w linii za.writeInt(mac[8].length);
8 to liczba elementów, pierwszy element ma indeks 0, ostatni - 7. 8 jest poza tablicą

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