Example usage for org.apache.poi.poifs.filesystem FileMagic prepareToCheckMagic

List of usage examples for org.apache.poi.poifs.filesystem FileMagic prepareToCheckMagic

Introduction

In this page you can find the example usage for org.apache.poi.poifs.filesystem FileMagic prepareToCheckMagic.

Prototype

public static InputStream prepareToCheckMagic(InputStream stream) 

Source Link

Document

Checks if an InputStream can be reset (i.e.

Usage

From source file:com.jkoolcloud.tnt4j.streams.inputs.ExcelSXSSFRowStream.java

License:Apache License

@Override
protected void initialize() throws Exception {
    super.initialize();

    Thread excelFileReader = new Thread(new Runnable() {
        @Override/*from w w  w.  j  av a2  s.  c o  m*/
        public void run() {
            try {
                File inputFile = new File(fileName);

                InputStream is = new FileInputStream(inputFile);
                is = FileMagic.prepareToCheckMagic(is);
                FileMagic fm = FileMagic.valueOf(is);
                Utils.close(is);

                if (fm == FileMagic.OOXML) {
                    readXLXS(inputFile);
                } else if (fm == FileMagic.OLE2) {
                    readXLS(inputFile);
                } else {
                    throw new IOException(
                            StreamsResources.getStringFormatted(MsOfficeStreamConstants.RESOURCE_BUNDLE_NAME,
                                    "ExcelSXSSFRowStream.unsupported.format", fileName));
                }
            } catch (Exception e) {
                Utils.logThrowable(LOGGER, OpLevel.ERROR,
                        StreamsResources.getBundle(MsOfficeStreamConstants.RESOURCE_BUNDLE_NAME),
                        "ExcelSXSSFRowStream.file.read.failed", fileName, e);
            }
            ended = true;
        }
    });
    excelFileReader.start();
}