Java 如何使用Apache Tika保存新的和/或修改的元数据?

Java 如何使用Apache Tika保存新的和/或修改的元数据?,java,apache,file,metadata,apache-tika,Java,Apache,File,Metadata,Apache Tika,我找到了这个代码示例。但是,它不会保存新的元数据。如何将新元数据保存在同一文件中 我试过了最后的副本。但问题是解析器实现将使用此流,但不会关闭它。() 我需要一个示例代码来保存更改 public void SetMedata(File param_File) throws IOException, SAXException, TikaException { // parameters of parse() method Parser parser = new Aut

我找到了这个代码示例。但是,它不会保存新的元数据。如何将新元数据保存在同一文件中

我试过了最后的副本。但问题是解析器实现将使用此流,但不会关闭它。()

我需要一个示例代码来保存更改

    public void SetMedata(File param_File) throws IOException, SAXException, TikaException {



    // parameters of parse() method
    Parser parser = new AutoDetectParser();
    BodyContentHandler handler = new BodyContentHandler();
    Metadata metadata = new Metadata();
    FileInputStream inputstream = new FileInputStream(param_File);
    ParseContext context = new ParseContext();

    // Parsing the given file
    parser.parse(inputstream, handler, metadata, context);

    // list of meta data elements elements
    System.out.println("===Before=== metadata elements and values of the given file :");
    String[] metadataNamesb4 = metadata.names();

    for (String name : metadataNamesb4) {
        System.out.println(name + ": " + metadata.get(name));
    }

    // setting date meta data
    metadata.set(TikaCoreProperties.CREATED, new Date());

    // setting multiple values to author property
    metadata.set(TikaCoreProperties.TITLE, "ram ,raheem ,robin ");

    // printing all the meta data elements with new elements
    System.out.println("===After=== List of all the metadata elements  after adding new elements ");
    String[] metadataNamesafter = metadata.names();

    for (String name : metadataNamesafter) {
        System.out.println(name + ": " + metadata.get(name));
    }

    //=======================================
    //How To Save metada. ===================

}

提前感谢您的回答、示例和帮助。

您知道Apache Tika只支持读取元数据,而不支持更改元数据吗?我认为可以修改或创建元数据。然后将它们添加到文件或新文件中。是什么让你产生了这样的想法?Apache Tika仅支持提取/读取元数据和内容。它可以将提取的内容保存到其他文件中,但不能保存到原始文件中。你有一个源代码示例来说明你的话吗?我应该在上面的程序中添加什么作为代码(//如何保存metada.========================================)以使用新元数据编写新文件。。谢谢如果您想将元数据作为json保存到一个新文件中,那么
java-jar tika-app-1.9.jar--json foo.doc>foo.doc.json
就可以了,或者从程序中调用类似的代码。应用程序可以将元数据输出/保存到新的文本、json或xmp文件。您是否知道Apache Tika只支持读取元数据,而不支持更改元数据?我认为可以修改或创建元数据。然后将它们添加到文件或新文件中。是什么让你产生了这样的想法?Apache Tika仅支持提取/读取元数据和内容。它可以将提取的内容保存到其他文件中,但不能保存到原始文件中。你有一个源代码示例来说明你的话吗?我应该在上面的程序中添加什么作为代码(//如何保存metada.========================================)以使用新元数据编写新文件。。谢谢如果您想将元数据作为json保存到一个新文件中,那么
java-jar tika-app-1.9.jar--json foo.doc>foo.doc.json
就可以了,或者从程序中调用类似的代码。应用程序可以将元数据输出/保存到新的文本、json或xmp文件。您是否知道Apache Tika只支持读取元数据,而不支持更改元数据?我认为可以修改或创建元数据。然后将它们添加到文件或新文件中。是什么让你产生了这样的想法?Apache Tika仅支持提取/读取元数据和内容。它可以将提取的内容保存到其他文件中,但不能保存到原始文件中。你有一个源代码示例来说明你的话吗?我应该在上面的程序中添加什么作为代码(//如何保存metada.========================================)以使用新元数据编写新文件。。谢谢如果您想将元数据作为json保存到一个新文件中,那么
java-jar tika-app-1.9.jar--json foo.doc>foo.doc.json
就可以了,或者从程序中调用类似的代码。应用程序可以将元数据输出/保存到新的文本、json或xmp文件中