|
|
@@ -20,6 +20,7 @@ import java.io.ByteArrayInputStream; |
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.InputStream;
|
|
|
|
import java.net.URL;
|
|
|
|
import java.util.zip.ZipInputStream;
|
|
|
|
|
|
|
|
import org.apache.poi.POIDataSamples;
|
|
|
@@ -90,6 +91,58 @@ public class HWPFTestDataSamples { |
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Open a remote sample from URL. opening is performd in two phases:
|
|
|
|
* (1) download content into a byte array
|
|
|
|
* (2) construct HWPFDocument
|
|
|
|
*
|
|
|
|
* @param sampleFileUrl the url to open
|
|
|
|
*/
|
|
|
|
public static HWPFDocument openRemoteFile( String sampleFileUrl )
|
|
|
|
{
|
|
|
|
final long start = System.currentTimeMillis();
|
|
|
|
try
|
|
|
|
{
|
|
|
|
InputStream is = new URL( sampleFileUrl ).openStream();
|
|
|
|
try
|
|
|
|
{
|
|
|
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
|
|
|
try
|
|
|
|
{
|
|
|
|
IOUtils.copy( is, baos );
|
|
|
|
}
|
|
|
|
finally
|
|
|
|
{
|
|
|
|
baos.close();
|
|
|
|
}
|
|
|
|
|
|
|
|
final long endDownload = System.currentTimeMillis();
|
|
|
|
byte[] byteArray = baos.toByteArray();
|
|
|
|
|
|
|
|
logger.log( POILogger.DEBUG, "Downloaded in ",
|
|
|
|
Long.valueOf( endDownload - start ), " ms -- ",
|
|
|
|
Long.valueOf( byteArray.length ), " byte(s)" );
|
|
|
|
|
|
|
|
ByteArrayInputStream bais = new ByteArrayInputStream( byteArray );
|
|
|
|
HWPFDocument doc = new HWPFDocument( bais );
|
|
|
|
final long endParse = System.currentTimeMillis();
|
|
|
|
|
|
|
|
logger.log( POILogger.DEBUG, "Parsed in ",
|
|
|
|
Long.valueOf( endParse - start ), " ms" );
|
|
|
|
|
|
|
|
return doc;
|
|
|
|
}
|
|
|
|
finally
|
|
|
|
{
|
|
|
|
is.close();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch ( IOException e )
|
|
|
|
{
|
|
|
|
throw new RuntimeException( e );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public static HWPFOldDocument openOldSampleFile(String sampleFileName) {
|
|
|
|
try {
|
|
|
|
InputStream is = POIDataSamples.getDocumentInstance().openResourceAsStream(sampleFileName);
|