public static Metadata getMetadata(File file){
Tika tika = new Tika();
try {
System.out.println("文件类型---"+tika.detect(file));
// video/mp4
File txtFile = new File(file.getPath()+".txt");
// FileUtil.writeUtf8String(tika.parseToString(file),txtFile);
Metadata metadata = new Metadata();
AutoDetectParser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler(-1);
parser.parse(new FileInputStream(file), handler, metadata, new ParseContext());
return metadata ;
} catch (IOException e) {
e.printStackTrace();
} catch (TikaException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
}
return null ;
}
```
bug产生new FileInputStream(file) 没有关闭。造成文件被占用,不能删除。修改后:
```
...
FileInputStream fileInputStream = new FileInputStream(file);
parser.parse(fileInputStream, handler, metadata, new ParseContext());
if (fileInputStream != null)
fileInputStream.close();
...
```