我成功地使用 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。为什么是这样?我错过了什么吗?