Witam, nie wiem gdzie zrobiłem błąd kompilator nie wyrzuca żadnych błędów, po zapisaniu do pliku i odczytaniu wszystko wygląda okey, tyle że gdy chce wyświetlić zawartość tablicy po odczytaniu nic w konsoli się nie wyświetla.
-Klasa Rachunek przechowuje tablice produktów (Klasa Produkty(String, Float, Int)).
-Metoda isEmpty() sprawdza czy tablica jest pusta
-Metoda isFull() sprawdza czy tablica jest pełna (z góry ustalone max na 15)
Po wypelnieniu calej tablicy
Dane zostaly zapisane do baza.dat
Po zresetowaniu programu i próbie odczytania z pliku
false
true
Dane zostaly odczytane z baza.dat
Powyżej powinna zostać wyświetlona zawartość tablicy, a tak się nie dzieje
Zawartość metod
public class Rachunek implements Serializable {
private static final long serialVersionUID = 1L;
static final int rozmiarTablicy = 15;
private int ileProduktow = 0;
private Produkty[] kartoteka = new Produkty[rozmiarTablicy + 1];
public boolean isEmpty() {
if (ileProduktow == 0)
return true;
return false;
}
public boolean isFull() {
if (ileProduktow == rozmiarTablicy)
return true;
return false;
}
public String drukujRachunek() {
String rachunek = " PARAGON FISKALNY \n"
+ "_______________________________\n"
+ "Nazwa Cena Strony\n"
+ "_______________________________\n";
float suma = 0, sumaVat = 0;
for (int i = 0; i < ileProduktow; i++) {
suma += kartoteka[i].obliczWartoscBrutto();
sumaVat += kartoteka[i].obliczWartoscNetto();
rachunek += "\n" + kartoteka[i].drukujListe();
}
rachunek += "\n";
rachunek += String.format("\n Cena netto: %.2f", sumaVat);
rachunek += String.format("\n Vat: %.2f", suma - sumaVat);
rachunek += String.format("\n DO ZAPLATY: %.2f", suma);
return rachunek;
}
...
...
...
public void SerializeArray() {
try {
ObjectOutputStream out = new ObjectOutputStream(
new FileOutputStream("baza.dat"));
out.writeObject(this);
out.close();
System.out.printf("Dane zostaly zapisane do baza.dat");
} catch (IOException i) {
i.printStackTrace();
}
}
public void DeserializeArray() {
try {
FileInputStream fileIn = new FileInputStream("baza.dat");
ObjectInputStream in = new ObjectInputStream(fileIn);
Rachunek rachunek = new Rachunek();
rachunek = (Rachunek) in.readObject();
in.close();
fileIn.close();
System.out.println(rachunek.isEmpty());
System.out.println(rachunek.isFull());
System.out.printf("Dane zostaly odczytane z baza.dat");
rachunek.drukujRachunek();
.....
}
public class Produkty implements Serializable {
private static final long serialVersionUID = 1L;
private static int vat = 5;
private String nazwa;
private float cena;
private int iloscStron;
...
public String drukujListe() {
return String.format("%-15s %-6.2f %-4d", nazwa, cena, iloscStron);
}
...