我需要使用MTOM从Web服务下载文件。我不知道下面的实现细节。我是这样做的,它可以工作(响应是从Web服务返回的对象,数据是javax.activation.DataHandler
类型,filePath
是我想要保存下载内容的文件):
DataHandler dataHandler = response.getData();
File file = new File(filePath);
FileOutputStream fileOutputStream = new FileOutputStream(file);
dataHandler.writeTo(fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
但是,我需要找出下载期间写入了多少字节。这可能需要很长时间,这种方式只需等待下载完成,然后关闭输出流并继续。
我知道,我可能需要另一个线程来读取已写入字节数并对其进行操作(需要用于更新SWT应用程序中的进度条)。
我的想法是以某种方式扩展DataHandler,然后定期询问已写入多少字节。但我是Java新手,不知道如何实现它。