本文概述
为了提取.class文件, Tika提供了ClassParser类。此类用于从.class文件中提取内容和元数据。它位于org.apache.tika.parser.asm包中, 并包含下表中列出的各种构造函数和方法。
Tika ClassParser构造函数
Constructor | Description |
---|---|
公共ClassParser() | 它用于创建类的实例。 |
Tika ClassParser方法
Methods | Description |
---|---|
公共Set <MediaType> getSupportedTypes(ParseContext上下文) | 它返回此解析器支持的媒体类型集。 |
公共无效解析(InputStream流, ContentHandler处理程序, 元数据元数据, ParseContext上下文)引发IOException, SAXException, TikaException | 它将文档流解析为一系列XHTML SAX事件。 |
Tika ClassParser示例
在此示例中, 我们从.class文件中提取内容和元数据。参见示例。
package tikaexample;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.asm.ClassParser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.SAXException;
public class ClassParserExample {
public static void main(String[] args) throws IOException, SAXException, TikaException {
BodyContentHandler handler = new BodyContentHandler();
ClassParser parser = new ClassParser();
Metadata metadata = new Metadata();
ParseContext pcontext = new ParseContext();
try (InputStream stream = new FileInputStream(new File("First.class"))) {
parser.parse(stream, handler, metadata, pcontext);
System.out.println("Document Content:" + handler.toString());
System.out.println("Document Metadata:");
String[] metadatas = metadata.names();
for(String data : metadatas) {
System.out.println(data + ": " + metadata.get(data));
}
}catch(Exception e) {System.out.println("Exception message: "+ e.getMessage());}
}
}
我们有一个First.class类, 其中包含以下代码。
public synchronized class First {
void First();
public static void main(String[]);
}
输出:(提取First.class文件后)
public synchronized class First {
void First();
public static void main(String[]);
}
Document Metadata:
dc:title: First
resourceName: First.class
title: First
评论前必须登录!
注册