我必須使用MTOM從網絡服務下載文件。下面的實施細節我不知道。我這樣做,這樣一來,它的工作原理(響應對象從符返回和數據是javax.activation.DataHandler
類型,filePath
是文件,在這裏我想保存下載的內容):如何確定DataHandler.writeTo()方法當前寫入的字節數?
DataHandler dataHandler = response.getData();
File file = new File(filePath);
FileOutputStream fileOutputStream = new FileOutputStream(file);
dataHandler.writeTo(fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
但是,我需要的是弄清楚,在下載過程中寫入了多少字節。這可能需要很長時間,這種方式只是等待完成下載,然後關閉輸出流並繼續。
我知道,我可能需要另一個線程來讀取寫入的字節數,並對它做些什麼(需要它來更新SWT應用程序中的progressBar)。
我的想法是擴展DataHandler,然後定期詢問有多少字節被寫入)。但我是java noob,我不知道如何實現它。