public final class XdrOutputStream
extends java.io.BufferedOutputStream
XdrOutputStream
writes data in XDR format to an
underlying java.io.OutputStream
.
This class is not thread-safe.
Modifier and Type | Field and Description |
---|---|
static int |
NULL_BYTE |
static int |
SPACE_BYTE |
Constructor and Description |
---|
XdrOutputStream(java.io.OutputStream out)
Create a new instance of
XdrOutputStream with default buffer size. |
XdrOutputStream(java.io.OutputStream out,
int bufferSize)
Create a new instance of
XdrOutputStream with the specified buffer size. |
Modifier and Type | Method and Description |
---|---|
void |
close()
Close this stream and the underlying output stream.
|
void |
enableCompression()
Wraps the underlying stream for zlib compression.
|
void |
setCipher(javax.crypto.Cipher cipher)
Wraps the underlying stream for encryption using the provided
cipher . |
void |
write(byte[] b,
int off,
int len)
Writes
len bytes from the specified byte array
starting at offset off to this output stream as defined by OutputStream.write(byte[], int, int) . |
void |
write(byte[] b,
int offset,
int len,
int pad)
Write a
byte buffer to the underlying output stream
in XDR format. |
void |
writeAlignment(int length)
Writes the
0x00 alignment for the specified length. |
void |
writeBuffer(byte[] buffer)
Write a
byte buffer to the underlying output stream in
XDR format. |
void |
writeDirect(byte[] data)
Writes directly to the
OutputStream of the underlying socket. |
void |
writeInt(int v)
Write an
int value to the underlying stream in XDR format. |
void |
writeLong(long v)
Write a
long value to the underlying stream in XDR format. |
void |
writePadding(int length,
int padByte)
Writes padding for the specified length of the specified padding byte.
|
void |
writeSpacePadding(int length)
Writes space (
0x20 ) padding of the specified length |
void |
writeString(java.lang.String s,
Encoding encoding)
Write content of the specified string using the specified encoding.
|
void |
writeTyped(int type,
Xdrable item)
Write an
Xdrable to this output stream. |
void |
writeTyped(ParameterBuffer parameterBuffer) |
void |
writeZeroPadding(int length)
Writes zero padding of the specified length
|
public static final int SPACE_BYTE
public static final int NULL_BYTE
public XdrOutputStream(java.io.OutputStream out)
XdrOutputStream
with default buffer size.out
- The underlying OutputStream
to write topublic XdrOutputStream(java.io.OutputStream out, int bufferSize)
XdrOutputStream
with the specified buffer size.out
- The underlying OutputStream
to write tobufferSize
- The size of the bufferpublic void writeAlignment(int length) throws java.io.IOException
0x00
alignment for the specified length. This padding is calculated as
(4 - length) & 3
.length
- The length of the previously written buffer to padjava.io.IOException
- if an error occurs while writing to the
underlying output streampublic void writeZeroPadding(int length) throws java.io.IOException
length
- Length to writejava.io.IOException
- if an error occurs while writing to the underlying output streamwritePadding(int, int)
public void writeSpacePadding(int length) throws java.io.IOException
0x20
) padding of the specified lengthlength
- Length to writejava.io.IOException
- if an error occurs while writing to the underlying output streamwritePadding(int, int)
public void writePadding(int length, int padByte) throws java.io.IOException
Prefer using the more specific writeZeroPadding(int)
and writeZeroPadding(int)
.
length
- Length of padding to writepadByte
- Padding byte to usejava.io.IOException
- if an error occurs while writing to the underlying output streamwriteSpacePadding(int)
,
writeZeroPadding(int)
public void writeBuffer(byte[] buffer) throws java.io.IOException
byte
buffer to the underlying output stream in
XDR format.buffer
- The byte
buffer to be writtenjava.io.IOException
- if an error occurs while writing to the
underlying output streampublic void writeString(java.lang.String s, Encoding encoding) throws java.io.IOException
java.io.IOException
public void writeTyped(int type, Xdrable item) throws java.io.IOException
Xdrable
to this output stream.type
- Type of the Xdrable
to be written,
e.g. ISCConstants.isc_tpb_version3
item
- The object to be writtenjava.io.IOException
- if an error occurs while writing to the
underlying output streampublic void writeTyped(ParameterBuffer parameterBuffer) throws java.io.IOException
java.io.IOException
public void writeLong(long v) throws java.io.IOException
long
value to the underlying stream in XDR format.v
- The long
value to be writtenjava.io.IOException
- if an error occurs while writing to the
underlying output streampublic void writeInt(int v) throws java.io.IOException
int
value to the underlying stream in XDR format.v
- The int
value to be writtenjava.io.IOException
- if an error occurs while writing to the
underlying output streampublic void write(byte[] b, int offset, int len, int pad) throws java.io.IOException
byte
buffer to the underlying output stream
in XDR format.b
- The byte
buffer to be writtenoffset
- The start offset in the bufferlen
- The number of bytes to writepad
- The number of (blank) padding bytes to writejava.io.IOException
- if an error occurs while writing to the
underlying output streampublic void write(byte[] b, int off, int len) throws java.io.IOException
len
bytes from the specified byte array
starting at offset off
to this output stream as defined by OutputStream.write(byte[], int, int)
.
Important: do not confuse this method with write(byte[], int, int, int)
which originally had
the signature of this method.
write
in class java.io.BufferedOutputStream
b
- The dataoff
- The start offset in the datalen
- The number of bytes to writejava.io.IOException
- if an error occurs while writing to the
underlying output streampublic void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in class java.io.FilterOutputStream
java.io.IOException
- if an error occurs while closing the
underlying stream@InternalApi public void enableCompression() throws java.io.IOException
java.io.IOException
- If the underlying stream is already set up for compressionpublic void setCipher(javax.crypto.Cipher cipher) throws java.io.IOException
cipher
.
An implementation wrapping a stream that also implements EncryptedStreamSupport
may delegate this call to
that wrapped stream.
cipher
- Cipher for the streamjava.io.IOException
- If the underlying stream is already wrappedpublic void writeDirect(byte[] data) throws java.io.IOException
OutputStream
of the underlying socket.data
- Data to writejava.io.IOException
- For errors writing to the socket.Copyright © 2001-2021 Jaybird (Firebird JDBC/JCA) team. All rights reserved.