diff options
author | PJ Fanning <fanningpj@apache.org> | 2022-02-19 14:01:19 +0000 |
---|---|---|
committer | PJ Fanning <fanningpj@apache.org> | 2022-02-19 14:01:19 +0000 |
commit | 1d0b478c16f0d38ff66fe921da2b32df567f1515 (patch) | |
tree | 9f9545661b36f8d498cc72222455f707928ca570 /poi-scratchpad | |
parent | 839f1ad02a24d7e04ad06af239cd89ac0f03c5b2 (diff) | |
download | poi-1d0b478c16f0d38ff66fe921da2b32df567f1515.tar.gz poi-1d0b478c16f0d38ff66fe921da2b32df567f1515.zip |
refactor some stream code
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1898221 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'poi-scratchpad')
4 files changed, 38 insertions, 35 deletions
diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hpbf/model/HPBFPart.java b/poi-scratchpad/src/main/java/org/apache/poi/hpbf/model/HPBFPart.java index 077598b1a5..f727360b34 100644 --- a/poi-scratchpad/src/main/java/org/apache/poi/hpbf/model/HPBFPart.java +++ b/poi-scratchpad/src/main/java/org/apache/poi/hpbf/model/HPBFPart.java @@ -17,11 +17,11 @@ package org.apache.poi.hpbf.model; -import java.io.ByteArrayInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream; import org.apache.poi.poifs.filesystem.DirectoryNode; import org.apache.poi.util.IOUtils; @@ -83,8 +83,9 @@ public abstract class HPBFPart { generateData(); // 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); + } } /** diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/EMF.java b/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/EMF.java index 0f95a2f2ad..0c118e50b9 100644 --- a/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/EMF.java +++ b/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/EMF.java @@ -18,11 +18,11 @@ package org.apache.poi.hslf.blip; import java.awt.Dimension; -import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.util.zip.InflaterInputStream; +import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream; import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream; import org.apache.poi.ddf.EscherBSERecord; import org.apache.poi.ddf.EscherContainerRecord; @@ -68,10 +68,11 @@ public final class EMF extends Metafile { Header header = new Header(); 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); assert(len == header.getSize() + CHECKSUM_SIZE); diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/Metafile.java b/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/Metafile.java index e15de24c66..acb3e849a2 100644 --- a/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/Metafile.java +++ b/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/Metafile.java @@ -19,21 +19,19 @@ package org.apache.poi.hslf.blip; import java.awt.Dimension; import java.awt.Rectangle; -import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.OutputStream; import java.util.zip.DeflaterOutputStream; +import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream; import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream; import org.apache.poi.ddf.EscherBSERecord; import org.apache.poi.ddf.EscherContainerRecord; 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.LittleEndian; import org.apache.poi.util.LittleEndianInputStream; import org.apache.poi.util.LittleEndianOutputStream; -import org.apache.poi.util.Removal; import org.apache.poi.util.Units; /** @@ -90,26 +88,29 @@ public abstract class Metafile extends HSLFPictureData { */ 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 { diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/WMF.java b/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/WMF.java index dbd66b1f65..1e32de6d43 100644 --- a/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/WMF.java +++ b/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/WMF.java @@ -18,11 +18,11 @@ package org.apache.poi.hslf.blip; import java.awt.Dimension; -import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.util.zip.InflaterInputStream; +import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream; import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream; import org.apache.poi.ddf.EscherBSERecord; import org.apache.poi.ddf.EscherContainerRecord; @@ -64,10 +64,10 @@ public final class WMF extends Metafile { @Override 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.read(rawdata, CHECKSUM_SIZE*getUIDInstanceCount()); long skipLen = header.getSize() + (long)CHECKSUM_SIZE*getUIDInstanceCount(); |