ho provato a fare così:

filetemp = tempFileService.getNewFile(prefix, "",".xls", pageContext,sessionContext);
filetemp.deleteOnExit();

//FileOutputStream streamOut = new FileOutputStream(filetemp);
System.out.println("ReadExcelUnitService - definisce oggetti per scrittura file temp");
FileWriter filewriter = new FileWriter(filetemp);
BufferedWriter nuovofile = new BufferedWriter(filewriter);
PrintWriter printout = new PrintWriter(nuovofile);

// loop lettura InputStream e scrittura su PrintWriter associata a file temp ...
int c;
while ((c = myxls.read()) != -1)
{ printout.write(c); }




la prima istruzione riichiama un metodo che semplicemente restituisce un oggetto File di tipo temporaneo, con nome dato dall'unione tra la stringa prefix e l'esten .xls
l'esecuzione va a buon fine ma l'oggetto filetemp che poi viene scritto in una tabella oracle risulta vuoto, come se non avesse scritto nulla.
dov'è l'errore, sbaglio sul PrintWriter? cioè scrivere su un PrintWriter non significa scrivere sul file a questo collegato?

ciao
Fabio