我成功地使用VFS从HTTP, SFTP, FTP等下载文件。我需要得到文件的内容类型,我遇到了一个奇怪的事情,我不知道为什么会发生。
FileObject file = vfs.resolveFile(uri) ;
FileContent content = remote.getContent();
InputStream source = content.getInputStream();
ByteArrayOutputStream target = new ByteArrayOutputStream();
copy(source, target);
content.getSize(); // HACK: Prevents null-pointer in next line
String type = content.getContentInfo().getContentType();
如果我删除对getSize
的调用,content.getContentInfo
将返回null。为什么会这样?我错过什么了吗?
正如@Sam-Rad所写,它在主干(即将到来的VFS 2.1)中被修复:
https://issues.apache.org/jira/browse/vfs - 427