2011-11-23 24 views

cevap

18

Eğer byte [] çıktı üretmesi

ByteArrayOutputStream buffer = new ByteArrayOutputStream(); 

ObjectOutputStream oos = new ObjectOutputStream(buffer); 

oos.writeObject(obj); 

oos.close(); 

byte[] rawData = buffer.toByteArray(); 

ps kontrol etmek isterseniz nesne

new ObjectOutputStream(outputStream).writeObject(obj); 

seri hale getirmek ne olduğunu. Aşağıdaki yorumlar için thx, aşağıdaki gibi düzenlenmiş

+0

Sadece açık bir cevap değil, aynı zamanda bir _good_ one olması için açıklayıcı bir metin eklemelisiniz. –

+1

'writeObject()', 'write()' türünde değil. Ve 'floş()' için bir çağrı yararlı olacaktır. –

0

ObjectOutputStream sınıfını ve yöntemlerini *serialize* nesnelerine kullanmanız gerekir. Aslında ObjectOutputStream, java.io.OutputStream'un bir alt sınıfıdır (Bu, bayt yönelimli akışların soyut bir süper sınıfıdır). Java Serialization API.

EDIT bir makaleye göz atın: Sen

XMLEncoder (Doc dan kullanabilirsiniz: XMLEncoder sınıf için tamamlayıcı bir alternatif ObjectOutputStream ve bir metinsel temsilini oluşturmak için kullanılan olabilir ObjectOutputStream Serializable nesnelerin ikili gösterimini oluşturmak için kullanılabilir, aynı şekilde bir JavaBean)

+1

bir Nesneyi serileştirmenin birden fazla yolu vardır; ObjectOutputStream kullanmanız gerekmiyor – Hachi

1
arasındaNesne verisini bir bayt Dizisi'nde 'yakalama' ve bunu OutputStream'e göndermek için ObjectOutputStream'i kullanabilirsiniz.
String s = "test"; 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
ObjectOutputStream oos = new ObjectOutputStream(baos); 
oos.writeObject(s); 
byte[] byteArray = baos.toByteArray(); 
for (byte b : byteArray) { 
    System.out.print((char) b); 
} 

Başka bir genel olmayan seçenek, nesneyi bir dizgi gösterimi içinde serileştirmek olabilir örn. CSV

0

Bu önemsiz: basitçe yeni ObjectOutputStream yılında Orijinal OutputStream sarın ve sonra ObjectOutputStream uzman yöntemleri kullanabilirsiniz:

OutputStream myOriginalOutputStream = ...; 
ObjectOutputStream oos = new ObjectOutputStream(myOriginalOutputStream); 
oos.writeObject(new MyObject()); 
oos.flush(); 
oos.close(); 

Dahili olarak, ObjectOutputStream yatan OutputStream 'ın write() yöntem arayacak.

İlgili konular