2009-02-04 11 views
8

Próbuję znaleźć najlepszy sposób na zapisanie stanu prostej aplikacji. Z punktu widzenia DB dostępne są 4/5 tabel z polami daty i relacjami poza kursem.Najlepszy sposób na zapisywanie danych w aplikacji Java?

Ponieważ aplikacja jest prosta i chcę, aby użytkownik miał możliwość przesuwania danych w pobliżu (usb pen, dropbox, itp.), Chciałem umieścić wszystkie dane w jednym pliku.

Jaki jest najlepszy sposób/lib to zrobić?

XML zwykle jest najlepszym formatem dla tego (czytelność & otwartość), ale nie znalazłem żadnej świetnej lib dla tego bez robienia SAX/DOM.

Odpowiedz

11

Jeśli chcesz korzystać z XML, spójrz na XStream, aby uzyskać prostą serializację obiektów Java w XML. Oto "Two minute tutorial".

Jeśli chcesz czegoś prostego, standard Java Properties format może być również sposobem przechowywania/ładowania niektórych małych danych.

+1

java.util.Properties wykonuje również XML. –

+0

XStream wydaje się dokładnie tym, czego szukałem. Czy znasz jakiś kod dostępny do optymalizacji pism w tej bibliotece? Nie powinienem zapisywać na dysku przy każdej zmianie. – fabiopedrosa

+0

Od Ciebie zależy, czy zainicjujesz pisanie. XStream nie zrobi dla ciebie żadnego automatycznego zapisu. –

0

2 inne opcje mogą rozważyć -

  • hsqldb to mały sql db napisany w Java. Bardziej istotne dla celów, może być skonfigurowany do prostu napisać do pliku csv, jak to magazyn danych, dzięki czemu mogłaby wykorzystywać to wyjściowy tekst jako przenośny magazynu danych i nadal korzystać z SQL, jeśli to co wolisz .
  • Druga opcja może polegać na zapisaniu datastore bezpośrednio do zserializowanego pliku bezpośrednio lub przez bibliotekę , np. Prevayler. Bardzo dobry wydajność i prosty w realizacji, minusy są kruchość i krycie w formacie.

Ale jeśli dane są wystarczająco małe, xml jest prawdopodobnie znacznie mniej kłopotliwy.

1

rozważyć użycie zwykłego adnotacje JAXB, które pochodzą z JDK:

@XmlRootElement 
private class Foo { 
    @XmlAttribute 
    private String text = "bar"; 
} 

oto blog-post of mine że daje więcej szczegółów na temat tego prostego wykorzystania JAXB (również mentiones bardziej „elegancki” podejście JAXB opartego - na wypadek, gdyby potrzebna była lepsza kontrola nad schematem XML, np. w celu zagwarantowania kompatybilności wstecznej)

+0

Jaka jest różnica w XStream? – lony

0

Jeśli nie ma potrzeby nadawania semantycznego znaczenia danym, to XML jest prawdopodobnie błędnym wyborem. Polecam użycie beztłuszczowej alternatywy JSON, która jest znacznie bardziej naturalnie zbudowana dla struktur danych.

+0

JSON rani, aby deserializować. Brak silnego pisania oznacza, że ​​musisz znać strukturę danych.Prawie nie łamacz gry, ale czuł się słaby, gdy próbowałem go do przechowywania danych Java. – Tim

Powiązane problemy