Package org.apache.pdfbox.pdfparser
Class EndstreamOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- java.io.BufferedOutputStream
-
- org.apache.pdfbox.pdfparser.EndstreamOutputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
class EndstreamOutputStream extends java.io.BufferedOutputStream
This class is only for the readUntilEndStream method, to prevent a final CR LF or LF (but not a final CR!) from being written to the output, unless the beginning of the stream is assumed to be ASCII. Only the 3-param write() method is implemented. This solves PDFBOX-2079 and PDFBOX-2120 and avoids making readUntilEndStream() even more complex than it already is.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
hasCR
private boolean
hasLF
private boolean
mustFilter
private int
pos
-
Constructor Summary
Constructors Constructor Description EndstreamOutputStream(java.io.OutputStream out)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
flush()
write out a single CR if one was kept.void
write(byte[] b, int off, int len)
Write CR and/or LF that were kept, then writes len bytes from the specified byte array starting at offset off to this output stream, except trailing CR, CR LF, or LF.
-
-
-
Method Detail
-
write
public void write(byte[] b, int off, int len) throws java.io.IOException
Write CR and/or LF that were kept, then writes len bytes from the specified byte array starting at offset off to this output stream, except trailing CR, CR LF, or LF. No filtering will be done for the entire stream if the beginning is assumed to be ASCII.- Overrides:
write
in classjava.io.BufferedOutputStream
- Parameters:
b
- byte array.off
- offset.len
- length of segment to write.- Throws:
java.io.IOException
-
flush
public void flush() throws java.io.IOException
write out a single CR if one was kept. Don't write kept CR LF or LF, and then call the base method to flush.- Specified by:
flush
in interfacejava.io.Flushable
- Overrides:
flush
in classjava.io.BufferedOutputStream
- Throws:
java.io.IOException
-
-