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:
|
File f = new 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; |