4 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
mimeType = file.toURL().openConnection().getContentType();
mimeType= URLConnection.guessContentTypeFromName(file.getName());
InputStream is = new BufferedInputStream(new FileInputStream(file));mimeType = URLConnection.guessContentTypeFromStream(is); //...close stream

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
JAFAPI是JDK 6的一部分??磈avax.activation包裹。
最有趣的類是javax.activation.MimeType-一個(gè)實(shí)際的MIME型保持架-和javax.activation.MimetypesFileTypeMap-類,其實(shí)例可以將MIME類型解析為文件的字符串:
String fileName = "/path/to/file";
MimetypesFileTypeMap mimeTypesMap = new MimetypesFileTypeMap();
// only by file name
String mimeType = mimeTypesMap.getContentType(fileName);
// or by actual File instance
File file = new File(fileName);
mimeType = mimeTypesMap.getContentType(file);

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
你只需要三行代碼:
File?file?=?new?File("/path/to/file");Tika?tika?=?new?Tika();System.out.println(tika.detect(file));
如果您有一個(gè)Groovy控制臺,只需粘貼并運(yùn)行以下代碼即可:
@Grab('org.apache.tika:tika-core:1.14')import?org.apache.tika.Tika;def?tika?=?new?Tika()def?file?=?new?File("/path/to/file")println?tika.detect(file)
記住,它的API很豐富,它可以解析“任何東西”。在TIKA-CORE 1.14中,您有:
String??detect(byte[]?prefix)String??detect(byte[]?prefix,?String?name)String??detect(File?file)String??detect(InputStream?stream)String? ?detect(InputStream?stream,?Metadata?metadata)String??detect(InputStream?stream,?String?name)String??detect(Path?path)String?? ?detect(String?name)String??detect(URL?url)
添加回答
舉報(bào)