Examinaţi utilizarea obiectului javax.activation.DataHandler

Pe Liberty, fiecare obiect DataHandler poate fi scris într-un flux de ieşire o singură dată. Scrierea de mai multe ori a unui obiect DataHandler într-un obiect OutputStream are ca rezultat un fişier gol. După ce apelaţi metoda javax.activation.DataHandler.writeTo(OutputStream), nu puteţi să transmiteţi obiectul DataHandler altei metode, să-l returnaţi sau să-l stocaţi pentru utilizarea ulterioară.

Ca un paliativ, puteţi să creaţi un nou obiect DataHandler şi să-l iniţializaţi cu conţinutul care a fost deja extras din obiectul DataHandler existent, folosind metoda writeTo. De exemplu:

< span class="Code"> < span class= "JavaType" > File < /span> f = < span class= "JavaKeyword" > new < /span> File ("received_image");
if (f.exists()) {
f.delete();
}

FileOutputStream fos = new FileOutputStream(f);

// Write the DataHandler object to the output stream.
img_in.writeTo(fos);

// Create a new DataHandler object and initialize it with
// the content that was retrieved using the writeTo method above.

FileDataSource fos_out = new FileDataSource(f);

DataHandler img_out = new DataHandler(fos_out);


return img_out;