public TextFileInputReader( IBaseFileInputStepControl step, TextFileInputMeta meta, TextFileInputData data, FileObject file, LogChannelInterface log ) throws Exception { this.step = step; this.meta = meta; this.data = data; this.log = log; CompressionProvider provider = CompressionProviderFactory.getInstance().getCompressionProviderByName( meta.content.fileCompression ); if ( log.isDetailed() ) { log.logDetailed( "This is a compressed file being handled by the " + provider.getName() + " provider" ); } in = provider.createInputStream( KettleVFS.getInputStream( file ) ); in.nextEntry(); BufferedInputStream inStream = new BufferedInputStream( in, BUFFER_SIZE_INPUT_STREAM ); BOMDetector bom = new BOMDetector( inStream ); if ( bom.bomExist() ) { // if BOM exist, use it instead defined charset isr = new InputStreamReader( inStream, bom.getCharset() ); } else if ( meta.getEncoding() != null && meta.getEncoding().length() > 0 ) { isr = new InputStreamReader( inStream, meta.getEncoding() ); } else { isr = new InputStreamReader( inStream ); } String encoding = isr.getEncoding(); data.encodingType = EncodingType.guessEncodingType( encoding ); readInitial(); }
@Override public InputStream getInputStream( final CsvInputAwareMeta meta ) { InputStream fileInputStream; CompressionInputStream inputStream = null; try { FileObject fileObject = meta.getHeaderFileObject( getTransMeta() ); fileInputStream = KettleVFS.getInputStream( fileObject ); CompressionProvider provider = CompressionProviderFactory.getInstance().createCompressionProviderInstance( ( (TextFileInputMeta) meta ).content.fileCompression ); inputStream = provider.createInputStream( fileInputStream ); } catch ( final Exception e ) { logError( BaseMessages.getString( "FileInputDialog.ErrorGettingFileDesc.DialogMessage" ), e ); } return inputStream; } }
f = provider.createInputStream( fi );
f = provider.createInputStream( fi );
CompressionProviderFactory.getInstance().getCompressionProviderByName( meta.getFileCompression() ); data.in = provider.createInputStream( KettleVFS.getInputStream( data.file ) ); data.dataErrorLineHandler.handleFile( data.file ); data.in.nextEntry();
inputStream = provider.createInputStream( fileInputStream );
f = provider.createInputStream( fi );
inputStream = provider.createInputStream( fileInputStream );