1

これが私が得ている例外です:

スレッド「AWT-EventQueue-0」の例外 java.lang.ArrayIndexOutOfBoundsException: 20203 at org.apache.poi.util.LittleEndian.getShort(LittleEndian.java:45) at org.apache.poi.hwpf.model.ListLevel.( ListLevel.java:120) org.apache.poi.hwpf.model.ListFormatOverrideLevel.(ListFormatOverrideLevel.java:48) org.apache.poi.hwpf.model.ListTables.(ListTables.java:88) org.apache .poi.hwpf.HWPFDocument.(HWPFDocument.java:267) org.apache.poi.hwpf.HWPFDocument.(HWPFDocument.java:157) com.mahesh.MyFrame.readMSDocuments(MyFrame.java:301) com. mahesh.MyFrame.readALLDocuments(MyFrame.java:276) で com.mahesh.MyFrame.access$1(MyFrame.java:269) で com.mahesh.MyFrame$2.actionPerformed(MyFrame.java:231) で javax.swing.AbstractButton .fireActionPerformed (不明なソース) javax.javax.swing.DefaultButtonModel.fireActionPerformed での swing.AbstractButton$Handler.actionPerformed (不明なソース) javax.swing.DefaultButtonModel.setPressed での (不明なソース) ) で java.awt.Component.processMouseEvent(不明なソース) で javax.swing.JComponent.processMouseEvent(不明なソース) で java.awt.Component.processEvent(不明なソース) で java.awt.Container.processEvent(不明なソース) でjava.awt.Component.dispatchEventImpl(ソース不明) java.awt.Container.dispatchEventImpl(ソース不明) java.awt.Component.dispatchEvent(ソース不明) java.awt.LightweightDispatcher.retargetMouseEvent(ソース不明) java.awt.LightweightDispatcher.retargetMouseEvent(不明ソース) awt.LightweightDispatcher。java.awt.LightweightDispatcher.dispatchEvent(不明なソース) の processMouseEvent(不明なソース) java.awt.Container.dispatchEventImpl(不明なソース) で java.awt.Window.dispatchEventImpl(不明なソース) java.awt.Component.dispatchEvent(ソース不明) java.awt.EventQueue.dispatchEvent(ソース不明) java.awt.EventDispatchThread.pumpOneEventForFilters(ソース不明) java.awt.EventDispatchThread.pumpEventsForFilter(ソース不明) java.awt.EventDispatchThread.pumpEventsForHierarchy(ソース不明) ) java.awt.EventDispatchThread.pumpEvents(不明なソース)で java.awt.EventDispatchThread.pumpEvents(不明なソース)で java.awt.EventDispatchThread.run(不明なソース)でjava.awt.Window.dispatchEventImpl(不明なソース) で java.awt.Component.dispatchEvent(不明なソース) で java.awt.EventQueue.dispatchEvent(不明なソース) で java.awt.EventDispatchThread.pumpOneEventForFilters(ソース不明) java.awt.EventDispatchThread.pumpEventsForFilter(ソース不明) java.awt.EventDispatchThread.pumpEventsForHierarchy(ソース不明) java.awt.EventDispatchThread.pumpEvents(ソース不明) java.awt.EventDispatchThread.pumpEvents(ソース不明) ) java.awt.EventDispatchThread.run (不明なソース) でjava.awt.Window.dispatchEventImpl(不明なソース) で java.awt.Component.dispatchEvent(不明なソース) で java.awt.EventQueue.dispatchEvent(不明なソース) で java.awt.EventDispatchThread.pumpOneEventForFilters(ソース不明) java.awt.EventDispatchThread.pumpEventsForFilter(ソース不明) java.awt.EventDispatchThread.pumpEventsForHierarchy(ソース不明) java.awt.EventDispatchThread.pumpEvents(ソース不明) java.awt.EventDispatchThread.pumpEvents(ソース不明) ) java.awt.EventDispatchThread.run (不明なソース) でjava.awt.EventDispatchThread.pumpEventsForFilter(不明なソース) の java.awt.EventDispatchThread.pumpEventsForHierarchy(不明なソース) の EventDispatchThread.pumpOneEventForFilters(不明なソース) java.awt.EventDispatchThread の java.awt.EventDispatchThread.pumpEvents(不明なソース)。 java.awt.EventDispatchThread.run(不明なソース) での pumpEvents(不明なソース)java.awt.EventDispatchThread.pumpEventsForFilter(不明なソース) の java.awt.EventDispatchThread.pumpEventsForHierarchy(不明なソース) の EventDispatchThread.pumpOneEventForFilters(不明なソース) java.awt.EventDispatchThread の java.awt.EventDispatchThread.pumpEvents(不明なソース)。 java.awt.EventDispatchThread.run(不明なソース) での pumpEvents(不明なソース)

そして、これは私のコードです

private void readMSDocuments(String fileToRead) {

    boolean containsEditorAndMt = false;
    String fileEditorAndMt = null;
    dataArray = null;
    try {

        fis = new FileInputStream(new File(fileToRead).getAbsolutePath());
        fs = new POIFSFileSystem(fis);
        document = new HWPFDocument(fs);
        wordExtractor = new WordExtractor(document);
        dataList = new ArrayList();
        dataArray = wordExtractor.getParagraphText();//getParagraphText() reads paragraphs so problem is each paragraph is read a single line .u can see in console
        System.out.println(dataArray.length);
        if (dataArray.length >= 0) {


            for (int k = 0; k < dataArray.length; ++k) {

                if (dataArray[k].trim().length() > 0) {

                    dataList.add(dataArray[k].trim());
                    //System.out.println(fileToRead+" "+dataArray[k].trim()+"\n");
                }
            }
        }

    }
}

例外がスローされる理由を見つけるのを手伝ってくれる人はいますか?

4

1 に答える 1

1

Apachi POI APIを使用しています:
これはこのドメインのバグです。

このバグについて読んで、これを通して分析することができます

于 2012-05-31T10:26:15.943 に答える