通用文本阅读

时间:2009-11-27 12:27:36

标签: text-processing

我正在开发一个项目,我需要阅读一些通用文本...我正在寻找任何api,我可以阅读通用文本,也可以将其转换为.csv文件... 任何人都可以帮助...... 在windows os上使用java ...

-------------------------- MORE Detail ------------------- -------------------------------------------------- ------------------ 让我澄清一下:

假设我有一个pdf文档或任何文件类型文档。我打算使用Print to Generic文本打印机选项并以该格式获取文件。最后,我打算使用一些API,使我能够以编程方式读取此通用文本格式文件。我打算从这个通用文本文件中提取文本。

所以,无论是任何文件(.doc / .pdf / .xls等wtatever),我打算使用print选项创建一个通用文本格式文件。然后运行我的代码来读取这些文件并提取一些信息。

PS:假设我有一个带有标准字段的状态报告表。好。但是,有些人可能会使用.pdf提交,有些人提交.doc,有些提交文本格式。但是,每个文档都包含相同的字段,但可能具有不同的布局。

现在,我正在寻找一个通用的解决方案,通过它我可以将每个文件类型转换为通用文本文件格式,然后应用一些逻辑来提取我的状态报告字段。

4 个答案:

答案 0 :(得分:1)

CSV是列中数据的格式。例如,这对维基百科的文章来说并不是很有用。

Apache Tika库将获取各种数据并将其转换为简洁的XML,您可以根据自己的喜好制作CSV。

如果你想编辑你的问题以澄清'通用'与'生成',并告诉更多有关数据的信息,将会有所帮助。

对于Windows打印机驱动程序,您是否希望将“print to pdf”作为“print to csv”?如果是这样,我怀疑你需要从打印机驱动程序的MSDN样本开始并以此方式编写代码。

所谓的“通用文本文件格式”不是结构化格式。对于任何给定的打印机系统输入,你会发现它是完全不可预测的。

答案 1 :(得分:1)

在Java中,这或多或少是您阅读文本文件所需要的,假设它以逗号分隔(如果您需要其他内容,只需更改“line.split”方法中的字符串)。它也会跳过标题。

    public void parse(String filename) throws IOException {
        File file = new File(filename);
        FileInputStream fis = new FileInputStream(file);
        InputStreamReader isr = new InputStreamReader(fis);
        BufferedReader br = new BufferedReader(isr);
        String line;
        int header = 1;
        while ((line = br.readLine()) != null) {
            if (header == 1) {
                header = 2;
                continue; // skips header
            }
            String[] splitter = line.split(",");
                    // do whatever
                    System.out.println(splitter[0]);
        }
    }

答案 2 :(得分:0)

通用免费图书:Text Processing in Python

答案 3 :(得分:0)

刚刚使用标准Java类进行I / O:

BufferedWriter,File,FileWriter,IOException,PrintWriter

.csv只是一个comma-separated values file。因此,只需使用.csv扩展名命名输出文件。

您还需要弄清楚如何拆分内容。

以下是Java示例,以帮助您:

writing to a text file

how to read lines from a file