使用Apache Commons VFS ,如何监控文件传输的进度。我需要能够通过上传和下载来做到这一点。我还需要监控 HTTP、FTP、SFTP 和 FTPS 的进度。我在文档中找不到任何相关内容。
最佳答案
可以通过从VFS获取输入和输出流来完成。以下示例使用 commons-net 中的实用程序类(VFS 的依赖项)来管理复制和进度监视。您同样可以手动完成。
import org.apache.commons.net.io.Util;
import org.apache.commons.net.io.CopyStreamListener;
private void copy(FileObject sourceFile, FileObject destinationFile, CopyStreamListener progressMonitor) throws IOException {
InputStream sourceFileIn = sourceFile.getContent().getInputStream();
try {
OutputStream destinationFileOut = destinationFile.getContent().getOutputStream();
try {
Util.copyStream(sourceFileIn, destinationFileOut, Util.DEFAULT_COPY_BUFFER_SIZE, sourceFile.getContent().getSize(), progressMonitor);
} finally {
destinationFileOut.close();
}
} finally {
sourceFileIn.close();
}
}
关于java - 如何监控 Apache Commons VFS 中文件传输的进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11101267/