读取.doc和.docx文件内容时出错



我想读取一个.txt,.doc和.docx文件并打印这些文件的内容。当我运行下面的代码时,读取了一些.doc和.txt文件,但许多文件无法读取。

import java.io.File;
import javax.swing.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
public class FindYourDocx 
{
    public static void main(String[] args) 
    {
String text = "";
    int read, N = 1024 * 1024;
    char[] buffer = new char[N];
    try { 
        JFileChooser openFile=new JFileChooser();
             openFile.setCurrentDirectory(new File("."));
             openFile.showOpenDialog(null);
            File f1=openFile.getSelectedFile();
           String file1=f1.toString();
           File f =new File(file1);
           JOptionPane.showMessageDialog(null,f);
        FileReader fr = new FileReader(f);
        BufferedReader br = new BufferedReader(fr);
        while(true) {
            read = br.read(buffer, 0, N);
            text += new String(buffer, 0, read);
        System.out.println("Follows"+text+" "); 
                    if(read < N) {
                break;
            }
       System.out.println("Follows"+text+" "); }
    } catch(Exception ex) {
        ex.printStackTrace();
    }
    }}

通过执行上面的代码(对于某些文件),我得到了一些有线消息,
如下所示https://i.stack.imgur.com/RwNWM.jpg

有人请帮我解决这个问题....

阅读.docx我遇到了类似使用 apacheio 的 XWPFDocument 的东西......这是怎麽?

首先,您应该考虑您的问题:不同的文件类型作为文件是什么样子的,它们的结构是什么,您想要打印的内容是什么,"打印"到底是什么意思?您正在做的是读取文件,将它们视为文本并将它们打印到 STDOUT。在您的情况下,"打印"是这个意思吗?我将"打印"解释为能够将内容发送到打印机并获得一些纸张。

另一个提示:Doc 和 Docx 是二进制文件,其中包含"某处"的"可打印"文本。您不能只是读取文件并对数据执行某些操作。您需要知道这些文件格式的外观,内容是否等。Java不能开箱即用,你需要额外的库来解析这些文件格式并用它们做一些事情。

有许多关于 docx 等格式的教程和问题:

如何使用poi jar读取java api中的docx文件内容

阅读.docx我遇到了类似使用 apacheio 的 XWPFDocument 的东西......这是怎麽?

你是说阿帕奇POI。要了解更多信息,请查看网站。简而言之,Apache POI和docx4j(我注意到你已经标记了)都是Java库,旨在读取,操作和写入Microsoft Office文件。

"文档"文件Microsoft专有二进制文件。如果您尝试单独使用 Java IO API 读取并显示它们,您将看到的只是二进制数据的表示形式。它对你没有用。您需要使用专门用于加载和遍历Word文件的API,这就是Apache POI或docx4j的用武之地。

"docx"文件是一种较新的基于 XML 的 Microsoft Office 格式。docx文件本质上是一个压缩文件夹,其中包含构成Word文件的各种资产。

正如我所说,为了正确读取Word文件,您需要使用提到的库之一。Apache和docx4j网站都包含大量示例代码,可帮助您开始打开和遍历Word文档(请注意,POI可以使用较旧的.doc格式,而docx4j仅适用于.docx文件)。

http://www.docx4java.org

http://poi.apache.org

相关内容

  • 没有找到相关文章

最新更新