Browse Source

refactor some stream code

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1898221 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_5_2_1
PJ Fanning 2 years ago
parent
commit
1d0b478c16

+ 4
- 3
poi-scratchpad/src/main/java/org/apache/poi/hpbf/model/HPBFPart.java View File



package org.apache.poi.hpbf.model; package org.apache.poi.hpbf.model;


import java.io.ByteArrayInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;


import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream;
import org.apache.poi.poifs.filesystem.DirectoryNode; import org.apache.poi.poifs.filesystem.DirectoryNode;
import org.apache.poi.util.IOUtils; import org.apache.poi.util.IOUtils;


generateData(); generateData();


// Write out // Write out
ByteArrayInputStream bais = new ByteArrayInputStream(data);
dir.createDocument(path[path.length-1], bais);
try (UnsynchronizedByteArrayInputStream bais = new UnsynchronizedByteArrayInputStream(data)) {
dir.createDocument(path[path.length-1], bais);
}
} }


/** /**

+ 6
- 5
poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/EMF.java View File

package org.apache.poi.hslf.blip; package org.apache.poi.hslf.blip;


import java.awt.Dimension; import java.awt.Dimension;
import java.io.ByteArrayInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.zip.InflaterInputStream; import java.util.zip.InflaterInputStream;


import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream;
import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream; import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.ddf.EscherBSERecord; import org.apache.poi.ddf.EscherBSERecord;
import org.apache.poi.ddf.EscherContainerRecord; import org.apache.poi.ddf.EscherContainerRecord;
Header header = new Header(); Header header = new Header();
header.read(rawdata, CHECKSUM_SIZE); header.read(rawdata, CHECKSUM_SIZE);


try (UnsynchronizedByteArrayOutputStream out = new UnsynchronizedByteArrayOutputStream();
InputStream is = new ByteArrayInputStream(rawdata);
InflaterInputStream inflater = new InflaterInputStream(is)) {

try (
InputStream is = new UnsynchronizedByteArrayInputStream(rawdata);
InflaterInputStream inflater = new InflaterInputStream(is);
UnsynchronizedByteArrayOutputStream out = new UnsynchronizedByteArrayOutputStream()
) {
long len = IOUtils.skipFully(is,header.getSize() + (long)CHECKSUM_SIZE); long len = IOUtils.skipFully(is,header.getSize() + (long)CHECKSUM_SIZE);
assert(len == header.getSize() + CHECKSUM_SIZE); assert(len == header.getSize() + CHECKSUM_SIZE);



+ 24
- 23
poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/Metafile.java View File



import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Rectangle; import java.awt.Rectangle;
import java.io.ByteArrayInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.util.zip.DeflaterOutputStream; import java.util.zip.DeflaterOutputStream;


import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream;
import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream; import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.ddf.EscherBSERecord; import org.apache.poi.ddf.EscherBSERecord;
import org.apache.poi.ddf.EscherContainerRecord; import org.apache.poi.ddf.EscherContainerRecord;
import org.apache.poi.hslf.usermodel.HSLFPictureData; import org.apache.poi.hslf.usermodel.HSLFPictureData;
import org.apache.poi.hslf.usermodel.HSLFSlideShow;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.LittleEndianInputStream; import org.apache.poi.util.LittleEndianInputStream;
import org.apache.poi.util.LittleEndianOutputStream; import org.apache.poi.util.LittleEndianOutputStream;
import org.apache.poi.util.Removal;
import org.apache.poi.util.Units; import org.apache.poi.util.Units;


/** /**
*/ */
private int filter = 254; private int filter = 254;


public void read(byte[] data, int offset){
@SuppressWarnings("resource")
LittleEndianInputStream leis = new LittleEndianInputStream(
new ByteArrayInputStream(data, offset, RECORD_LENGTH));

wmfsize = leis.readInt();

int left = leis.readInt();
int top = leis.readInt();
int right = leis.readInt();
int bottom = leis.readInt();
bounds.setBounds(left, top, right-left, bottom-top);

int width = leis.readInt();
int height = leis.readInt();
size.setSize(width, height);

zipsize = leis.readInt();
compression = leis.readUByte();
filter = leis.readUByte();
public void read(byte[] data, int offset) {
try (
LittleEndianInputStream leis = new LittleEndianInputStream(
new UnsynchronizedByteArrayInputStream(data, offset, RECORD_LENGTH))
) {
wmfsize = leis.readInt();

int left = leis.readInt();
int top = leis.readInt();
int right = leis.readInt();
int bottom = leis.readInt();
bounds.setBounds(left, top, right - left, bottom - top);

int width = leis.readInt();
int height = leis.readInt();
size.setSize(width, height);

zipsize = leis.readInt();
compression = leis.readUByte();
filter = leis.readUByte();
} catch (IOException e) {
throw new IllegalStateException(e);
}
} }


public void write(OutputStream out) throws IOException { public void write(OutputStream out) throws IOException {

+ 4
- 4
poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/WMF.java View File

package org.apache.poi.hslf.blip; package org.apache.poi.hslf.blip;


import java.awt.Dimension; import java.awt.Dimension;
import java.io.ByteArrayInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.zip.InflaterInputStream; import java.util.zip.InflaterInputStream;


import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream;
import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream; import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.ddf.EscherBSERecord; import org.apache.poi.ddf.EscherBSERecord;
import org.apache.poi.ddf.EscherContainerRecord; import org.apache.poi.ddf.EscherContainerRecord;


@Override @Override
public byte[] getData(){ public byte[] getData(){
try {
byte[] rawdata = getRawData();
byte[] rawdata = getRawData();
try (InputStream is = new UnsynchronizedByteArrayInputStream(rawdata)) {



InputStream is = new ByteArrayInputStream( rawdata );
Header header = new Header(); Header header = new Header();
header.read(rawdata, CHECKSUM_SIZE*getUIDInstanceCount()); header.read(rawdata, CHECKSUM_SIZE*getUIDInstanceCount());
long skipLen = header.getSize() + (long)CHECKSUM_SIZE*getUIDInstanceCount(); long skipLen = header.getSize() + (long)CHECKSUM_SIZE*getUIDInstanceCount();

Loading…
Cancel
Save