首页 > 解决方案 > Java apache Tika 如何从 rar 获取文件?

问题描述

我正在处理具有 2 个文件的 file.rar (rar v.4):1.txt 和 2.txt。

示例内容1.txt:

word1 word1

示例内容2.txt:

word2 word2

通过此代码处理后:

            try (InputStream is = new BufferedInputStream(new FileInputStream(newStr))){
                
                String mimeType = tika.detect(is);
                metadata.set(Metadata.CONTENT_TYPE, mimeType);
                
                AutoDetectParser parser = new AutoDetectParser();
                ParseContext pc = new ParseContext(); 
                ContentHandler ch = new BodyContentHandler(-1);
                parser.parse(is, ch, metadata, pc);

                byte[] arrayCh = ch.toString().trim().getBytes("UTF-8");
                
                file_size = arrayCh.length;
                if(arrayCh.length != 0){ 
                
                    String outdir = Path[1];

                    String newName = outdir + File.separator + datFile.replace("dat", "txt");
                    File outPutFile_json = new File(newName);
                    outPutFile_json.createNewFile();
                 }

                 System.out.println("ch: "+ch.toString());

             catch(){
               .... 
             }

后:

parser.parse(is, ch, metadata, pc);

我在一个共享变量中有 file.rar 的内容:

ch.toString()

并且这个变量 ch.toString 具有来自 1.txt 的文本并附加文本 2.txt:

所以ch.toString:

word1 word1 2.txtword2 word2

如何分别获取 1.txt 和 2.txt 的内容,而不是在同一个变量 ch.toString 中?我希望 1.txt 中的文本成为新变量 1,而 2.txt 中的文本成为新变量 2。我怎样才能得到这个?

标签: javacompressionapache-tikatext-extractionrar

解决方案


推荐阅读