个性化阅读
专注于IT技术分析

Tika类文件提取示例

点击下载

本文概述

为了提取.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
赞(0)
未经允许不得转载:srcmini » Tika类文件提取示例

评论 抢沙发

评论前必须登录!