To mój kod przepisany z BufferedReader na ObjectInputStream:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
public class OdczytajPlik2 {
public static class TworzPlik {
static double[][]tablica;
public static void Czytaj() {
String linia = "";
try {
FileInputStream fis = new FileInputStream("NowaTab2.txt");
ObjectInputStream bfr = new ObjectInputStream(fis);
linia = (String) bfr.readObject();
String[] liczbawierszy = (String[]) ((String) bfr.readObject()).split(" ");
int wiersz = Integer.parseInt(liczbawierszy[2]);
String[] liczbakolumn = (String[]) ((String) bfr.readObject()).split(" ");
int kol = Integer.parseInt(liczbakolumn[2]);
double tablica[][] = new double [wiersz][kol];
for (int x = 0; x<wiersz; x++) {
String[] wyrazS = (String[]) ((String) bfr.readObject()).split(" ");
for (int i = 0; i<tablica.length; i++) {
double wyrazD = Double.parseDouble(wyrazS[i]);
tablica[x][i] = wyrazD;
}
}
double max = tablica[0][0];
double min = tablica[0][0];
for (int i = 0; i<tablica.length; i++) {
for (int j = 0; j<tablica[i].length; j++) {
System.out.print(tablica[i][j] + " ");
if (max < tablica[i][j]) {
max = tablica[i][j];
}
if (min > tablica[i][j]) {
min = tablica[i][j];
}
}
System.out.println(" ");
}
System.out.println("Maksymalna wartość tablicy: " + max);
System.out.println("Minimalna wartość tablicy: " + min);
}
catch (ClassNotFoundException | IOException e) {
System.out.println("Ups, jest problem");
}
}
public static void main(String[] args){
Czytaj();
}
}
}
Plik mam w formie:
Macierz
Liczba wierszy: 2
Liczba kolumn: 2
3.409151512972887 0.22054570085972447
4.049554444595676 6.816644995335207
A w konsoli wyświetla mi:
Ups, jest problem
Dlaczego? Co powinienem poprawić?