2017-01-18 17 views

答えて

1

それは.docまたは.docxあることのいずれかに知られているファイルの集合かどうかを決めたが、拡張子を持つに応じてマークされていないだけの問題である場合は、.docxファイルは、ファイルのzip形式の集まりであるという事実を使用することができます。かもしれないのヘルプを次のように調整するために何か:fileStreamあなたは評価したいものは何でも、ファイルまたは他の入力ストリームである

boolean isZip = new ZipInputStream(fileStream).getNextEntry() != null; 

。キー.docxのエントリを探して、さらに圧縮ファイルを評価することができます。良いスタートリファレンスは​​です。同様に、バイナリファイルであることが分かっている場合は、Wordのファイル情報ブロック(Word (.doc) Binary File Formatを参照)をテストできます。

+0

ことを、感謝を見れば、それは.docx

だ、.docだ – Vipul

0

コンテンツの検出にApache Tikaを使用できます。しかし、これは、このような小さなタスクのために、これが大きなフレームワーク(多くの必要な依存関係)であることに気付いたはずです。

+0

良い提案が、私はすべきです私はApacheのpoiを使用しているときにApacheのtikaを使用して、何かApacheのpoi経由で同じことをやっている? – Vipul

0

方法はありますが、直接的にはありません。しかし、Apache POIを使うと、それを見つけることができます。

HWPFDocumentクラスを使用して.docxファイルを読み取ろうとします。供給 データには、Office 2007+ XMLにあるように表示されます。それはあなたの

org.apache.poi.poifs.filesystem.OfficeXmlFileExceptionを次のエラーを与えるだろう。 OLE2 Office Documentsを扱うPOIの部分 を呼び出しています。あなたは

String filePath = "C:\\XXXX\XXXX.docx"; 
FileInputStream inStream; 
try { 
    inStream = new FileInputStream(new File(filePath)); 
    HWPFDocument doc = new HWPFDocument(inStream); 
    WordExtractor wordExtractor = new WordExtractor(doc); 
    System.out.println("Getting words"+wordExtractor.getText()); 
} catch (Exception e) { 
    System.out.print("Its not a .doc format"); 
} 

このデータを処理するためにPOIの 異なる部分を呼び出す必要があります(代わりにHSSFの例えばXSSF).docxのはXWPFDocumentクラスを使用して読み取ることができます。

0

は、なぜあなたはApache Tikaを使用していけない:

File file = new File('File Here'); 

    Tika tika = new Tika(); 

    String filetype = tika.detect(file); 
    System.out.println(filetype); 
0

あなたは、Apache POIを使用していると仮定すると、あなたはいくつかのオプションがあります。

1つは、ファイルの最初の数バイトを取得し、ask POIFSFileSystem with the hasPOIFSHeader(byte) methodです。マーク/リセットをサポートするストリームがある場合は、代わりにPOIFSFileSystem.hasPOIFSHeader(InputStream)を使用できます。それがうまく開いた場合 - これらはtrueを返すならば、そうでなければ、のtry/catchの方法を好む場合は、POIFSFileSystemでそれを開き、OfficeXmlFileExceptionをキャッチしようと、そうでない場合XWPF

.docxとしてみてください、HWPF.docとしてそれを開こうそれはあなたが例外を取得する場合、あなたが使用中の第一のパターンを参照してくださいよ、あなたは、論理形式の類似したセットをコピーすることができ、それは私のためsource code for WorkbookFactory作品

関連する問題