java - 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。我怎样才能得到这个?
解决方案
推荐阅读
- r - 当字符串值与前一行相同时,将“NA”输出到新列
- javascript - Javascript表头不粘
- java - 转换 get 到 post http 方法
- java - “java.lang.OutOfMemoryError:无法创建新的本机线程”没有解决增加进程限制
- c++ - 检测到堆损坏(类方法)
- javascript - React-redux 持续存在,仅对 redux-state 中的一些节点进行再水化
- python - 任务之间保存的 dask-worker 内存
- javascript - 异步函数之外的等待不会在控制台中引发错误
- python - 可以为不同的类变量调用相同的方法吗
- javascript - 有没有办法捕捉单击地理位置确认窗口的关闭按钮时触发的事件?