将结果保存在列表中并将列表提供给csv

时间:2016-05-13 06:39:39

标签: list csv apache-tika

我与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尝试了这个但是没有用。

1 个答案:

答案 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;希望"更好。你的数据没有任何逗号/换行符或自己动手。