Do jakiego typu pliku można zapisać zawartość
ArrayList<Polygon>
?
Do jakiego chcesz. Możesz serializować binarnie, możesz do jakiegoś XMLa czy JSONa.
Ja geoJson przechowuje w mysql, a użytkownikowi serwuje z json.
Wracam jeszcze do tematu. Próbuję listę z trójkątami zapisać do pliku XML i później odtworzyć ją z tego pliku. Mam problem z jej odtworzeniem, zapisuje się w niej tylko trójkąt, który był pierwszy w liście. W jaki sposób mogę to poprawić?
else if (source == mZapiszJako)
{
JFileChooser fileCh = new JFileChooser();
if (fileCh.showSaveDialog(null)==JFileChooser.APPROVE_OPTION)
{
File nazwaPliku = fileCh.getSelectedFile();
try
{
XMLEncoder enc = new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream(nazwaPliku)));
for (Polygon plg : listaTrojkatow)
{
enc.writeObject(plg);
}
enc.close();
}
catch (FileNotFoundException e1)
{
e1.printStackTrace();
}
}
}
else if (source == mOtworz)
{
JFileChooser fileCh = new JFileChooser();
if (fileCh.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
{
File nazwaPliku = fileCh.getSelectedFile();
try
{
XMLDecoder dec = new XMLDecoder(
new BufferedInputStream(
new FileInputStream(nazwaPliku)));
Polygon trojkaty = (Polygon) dec.readObject();
listaTrojkatow.add(trojkaty);
dec.close();
panelRysunkowy.repaint();
}
catch (FileNotFoundException e1)
{
e1.printStackTrace();
}
}
Występują też inne problemy, ale o tym później.
Pomoże ktoś?
Domyślam się, że zapis obiektu z pliku XML do listy powinien być wykonywany w pętli. Ale nie mam pojęcia, jaką pętlę można by zastosować w tym przypadku i jaki powinna mieć warunek.
A nie lepiej serializować i deserializować od razu całą listę z trójkątami ?
Ogólnie jeśli chodzi o zapis/odczyt do xml-a to polecam przyjrzyeć się bibliotece JAXB, która oferuje bardziej rozbudowane możliwości.