Just nu i M3-nätverket
Gå till innehåll

Skriva till/läsa från ObjectOutputStream resp. ObjectInputStream


Manne_278

Rekommendera Poster

Hej

 

Jag håller på och skriver ett prog som har några knappar och några textfält. I textfälten matar man in info om en person.

Jag har en klass Person som innehåller lite uppgifter om en person.

Detta objekt skrivs till en fil med ObjectOutputStream.

 

Allting verkar funka bra med inläsningen men när uppgifter om personer ska tas fram kan jag bara få fram det senast inlagda objektet.

 

(I nedanstående kod är "p" ett Personobjekt)

I ActionListener:

p.setAge(Integer.parseInt(ageTextField.getText()));

p.setName(nameTextField.getText());

writeRecord(p);

 

I writeRecord:

outFile.writeObject(p);

outFile.flush();

 

Låt oss säga att jag nu matat in tre personer.

Jag vill nu med en knapptryckning på knappen "Visa", visa info om alla dessa personer i mina textfält. (En efter en, alltså)

 

I readRecord:

p = (Person)inFile.readObject();

ageTextField.setText(new Integer(((Person)p).getAge()).toString());

nameTextField.setText(((Person)p).getName());

 

När denna metod anropas får jag hela tiden upp den senast inlagda personen. Jag vill kunna "bläddra" mellan alla inlagda.

 

Ska jag på nåt sätt ta hjälp av en array, eller finns det nåt smartare/bättre sätt att lösa detta?

 

TACK

 

 

 

Länk till kommentar
Dela på andra webbplatser

Fundering: Hur lagrar du egentligen objeket, dvs din personuppgifter? Varför spara ned dem på disken så snart de matats in?

 

Och sedan - öppnar du om out-filen varje gång du skriver ett objekt? Om jag inte missminner mig så börjar JAVA alltid om från början i filen, dvs skriver över den, dina gamla objekt försvinner därmed.

 

Så om du vill spara fler objekt till en fil och sedan plocka dem en och en därifrån måste du dels när du sparar alltid se till att hålla reda på var i filen du ska skriva samt när du öppnar stega igenom alla tidigare objekt för att hitta det du vill ha.

 

Nu vet jag inte vad du vill uppnå med programmet, men vore det inte bättre med någon typ av lista i programmet som du sparar dina objekt i. Sedan kan du spara ned hela denna lista i ett anrop och även då lätt åter hämta den. Spara då kanske inte listan efter varje ändring utan gör det vid bestämda punkter i programmet, kanske på användarens uppmaning ex.v.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...