ObjectOutputStream - zapis bez serializacji

Odpowiedz Nowy wątek
2011-08-04 11:23
0

Witam.

Mam takowy problem. Nigdzie w necie nie mogę znaleźć informacji na temat mnie interesujący, a mianowicie:

Piszę program z wykorzystaniem biblioteki SWT i potrzebuje zapisać pewne obiekty z niej (np. Image, Color, Text) na dysku. Do tej pory korzystałem z AWT i Swinga, więc nie musiałem się martwić serializacją, a SWT nie ma tego wbudowanego.
Więc czy jest możliwość zapisu (również odczytu) obiektów z SWT podobnie jak te serializowane. Chodzi o coś takiego, aby zapisać cały obiekt klasy 'Klasa' zawierający obiekt(y) z SWT:

 
//
//kod pisany z palca, niekompilowany, pokazuje tylko problem
//
 
import java.io.Serializable;
import org.eclipse.swt.graphics.Image;
 
public class Klasa implements Serializable {
 
  private static final long serialVersionUID = -5458770022571283520L;
  private Image image;
 
  (...)
 
}
 
public class Zapis {
 
  public static void zapisz(Klasa k)
  {
    try
    { 
      ObjectOutputStream out = new ObjectOutputStream (new FileOutputStream("plik"));
      out.writeObject(k);
      out.close();
    }
    catch(...)
    {
    }
 
  }
}

Wiem, że w powyższy sposób nie da się zapisać nie serializowanego obiektu. Przynajmniej przy próbie takiego zapisu, program rzuca wyjątek, że obiekt (w tym przypadku) Image jest nie serializowany i nie da się go zapisać, ale może jest jakiś odpowiednik klasy ObjectOutputStream, która może zapisać obiekty z SWT, w podobny sposób (czyli podaje jako argument cały obiekt i nic więcej mnie nie martwi)?

edytowany 1x, ostatnio: Lena(R), 2011-08-04 11:25

Pozostało 580 znaków

2011-08-05 21:18

Nigdy nie pisałem w SWT, ale bym zrobił tak:

Zaimplementuj w swoim obiekcie interfejs http://download.oracle.com/ja[...]i/java/io/Externalizable.html
Do zapisu i odczytu Image użyj http://help.eclipse.org/indig[...]2Fgraphics%2FImageLoader.html (oczywiście jakiegoś bezstratnego formatu).


Registered Linux user #456405 | SCJP 6 | SCWCD 5 | SCBCD 5

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0