2012-05-03 16 views
12

Jakie rozszerzenie pliku byłoby najbardziej odpowiednie do zapisania obiektu na dysku z numerem Serializable?Rozszerzenie pliku dla obiektu szeregowanego

FileOutputStream fos = null; 
ObjectOutputStream out = null; 
try { 
    fos = new FileOutputStream(filename); 
    out = new ObjectOutputStream(fos); 
    out.writeObject(mySerializableObject); 
} catch (IOException ex) { 
    ex.printStackTrace(); 
} finally { 
    IOUtils.closeQuietly(out); 
} 
+1

Mam na myśli .ser w tej chwili, ale nie w 100% – Edd

Odpowiedz

23

„.ser” jest rozsądnym wyborem dla przyrostka plików - http://www.file-extensions.org/ser-file-extension

Jednakże, można argumentować, że to, co zrobić małą różnicę przyrostek użyć ... pod warunkiem, że jest nie kolidować inne często używane sufiksy aplikacji.

Plik serializowany Java można odczytać (w normalny sposób) przez aplikację Java, która ma odpowiednie klasy w swojej klasie. Uniwersalny przyrostek ".ser" nie dostarcza wskazówek, jakie mogą być te klasy i gdzie powinna je znaleźć struktura uruchamiania aplikacji. W związku z tym nie będzie można ustawić powiązania plików w stylu systemu Windows, aby uruchamiać aplikacje z podwójnym kliknięciem.


Czy istnieje sposób mogę wyświetlić lub edytować plik ser ??

Prawdopodobnie, ale z wielkim trudem i tylko pod pewnymi warunkami.

Zawartość pliku jest wysoce zależna od klasy, która została przekształcona do postaci szeregowej. Teraz można określić nazwę tej klasy oraz (w niektórych przypadkach) nazwy i typy zserializowanych pól. Jeśli jednak klasa używa niestandardowej serializacji/eksternalizacji, reprezentacja będzie nieprzezroczystą plamą danych binarnych bez wskazówek w pliku, jak ją rozszyfrować. Nieprzezroczysty problem typu "blob" jest dość powszechny, ponieważ wiele ważnych klas w bibliotece klasy Java SE korzysta z niestandardowej serializacji ... w celu zwiększenia efektywności ... i tak dzieje się wiele klas aplikacji.

Innym możliwym podejściem jest znalezienie plików .class dla wszystkich klas wymienionych w pliku .ser, deserializacja do obiektów i użycie odbicia w celu uzyskania dostępu do pól obiektów przekształconych w deserializację. Możesz nawet je poprawić i ponownie skonfigurować. Jednakże, jeśli nie masz odpowiednich wersji wszystkich plików .class, nie jest to program startowy.

+0

Czy istnieje sposób, aby wyświetlić lub edytować plik ser? – Winz

+1

@ user1042983 W skrócie: nie - jest to lista obiektów Java i powinna być edytowana programowo tylko przez aplikację Java, która ją utworzyła. – Alex