我与Tika File Detector合作。它检查我的文件是什么文件。
目前我的代码就像这样
if (Type.endsWith("application/msword")){ //Match if its .doc
}
else if (Type.endsWith("application/vnd.ms-powerpoint")){ //Match if its .ppt
}
else if (Type.endsWith("application/vnd.ms-excel")){ //Match if its .xls
}
else if (Type.endsWith("application/vnd.openxmlformats-officedocument.wordprocessingml.document")){ //Match if its .docx
现在我想将结果存储在一个列表中,该列表有两个条目。当我检查所有文件时,我想将列表保存在csv文件中。
我用hashmap尝试了这个但是没有用。
答案 0 :(得分:1)
您可以使用并行数组。我猜一个用于文件名,一个用于文件类型,但如果您只是写入.csv,则无需将信息存储在临时数据结构中。
如果要将文件名,mime字符串和扩展名写入csv,请执行以下操作,在main()中迭代文件...
static Tika tika = new Tika();
static MimeTypes mimeTypes = TikaConfig.getDefaultConfig().getMimeRepository();
static void processFile(Path p, Writer writer) throws IOException, MimeTypeException {
String mimeString = tika.detect(p);
MimeType mt = mimeTypes.forName(mimeString);
writer.write(String.format("%s,%s,%s,%n",
p.getFileName(),mimeString,mt.getExtension()));
}
你想要添加异常处理,使用真正的CSV编写器(参见Apache Commons csv)总是比使用#34;希望"更好。你的数据没有任何逗号/换行符或自己动手。