Class NonshareableBufferedDataOutputStream
- All Implemented Interfaces:
Closeable
,DataOutput
,Flushable
,AutoCloseable
- See Also:
-
Field Summary
Fields inherited from class java.io.FilterOutputStream
out
-
Constructor Summary
ConstructorDescriptionCreates a new buffered output stream to write data to the specified underlying output stream.NonshareableBufferedDataOutputStream
(OutputStream out, byte[] buf) Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer.NonshareableBufferedDataOutputStream
(OutputStream out, byte[] buf, long previousFileSize) Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer.NonshareableBufferedDataOutputStream
(OutputStream out, int size) Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer size. -
Method Summary
Modifier and TypeMethodDescriptionvoid
flush()
Flushes this buffered output stream.int
Return the number of times data was flushed to the next stream downstream.long
Report the number of bytes written through this stream.int
Get the count of bytes in the buffer that have not been forwarded to the next OutputStream down.void
write
(byte[] b, int off, int len) Writeslen
bytes from the specified byte array starting at offsetoff
to this buffered output stream.void
write
(int b) Writes the specified byte to this buffered output stream.void
write2Int
(int v1, int v2) Writes 2int
values, each of which is comprised of four bytes, to the output stream.final void
writeBoolean
(boolean v) Writes aboolean
to the underlying output stream as a 1-byte value.final void
writeByte
(int v) Writes out abyte
to the underlying output stream as a 1-byte value.final void
writeBytes
(String s) Writes out the string to the underlying output stream as a sequence of bytes.final void
writeChar
(int v) Writes achar
to the underlying output stream as a 2-byte value, high byte first.final void
writeChars
(String s) Writes a string to the underlying output stream as a sequence of characters.final void
writeDouble
(double v) Converts the double argument to along
using thedoubleToLongBits
method in classDouble
, and then writes thatlong
value to the underlying output stream as an 8-byte quantity, high byte first.final void
writeFloat
(float v) Converts the float argument to anint
using thefloatToIntBits
method in classFloat
, and then writes thatint
value to the underlying output stream as a 4-byte quantity, high byte first.final void
writeInt
(int v) Writes anint
to the underlying output stream as four bytes, high byte first.final void
writeLong
(long v) Writes along
to the underlying output stream as eight bytes, high byte first.final void
writeShort
(int v) Writes ashort
to the underlying output stream as two bytes, high byte first.final void
Writes a string to the underlying output stream using modified UTF-8 encoding in a machine-independent manner.Methods inherited from class java.io.FilterOutputStream
close, write
Methods inherited from class java.io.OutputStream
nullOutputStream
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.io.DataOutput
write
-
Constructor Details
-
NonshareableBufferedDataOutputStream
Creates a new buffered output stream to write data to the specified underlying output stream.- Parameters:
out
- the underlying output stream.
-
NonshareableBufferedDataOutputStream
Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer size.- Parameters:
out
- the underlying output stream.size
- the buffer size.- Throws:
IllegalArgumentException
- if size < 8.
-
NonshareableBufferedDataOutputStream
Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer.- Parameters:
out
- the underlying output stream.buf
- the buffer to use- Throws:
IllegalArgumentException
- if buf.length < 8.
-
NonshareableBufferedDataOutputStream
Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer.- Parameters:
out
- the underlying output stream.buf
- the buffer to usepreviousFileSize
- number of bytes already in the file (suitable for appending to an existing file)- Throws:
IllegalArgumentException
- if buf.length < 8.
-
-
Method Details
-
write
Writes the specified byte to this buffered output stream.- Specified by:
write
in interfaceDataOutput
- Overrides:
write
in classFilterOutputStream
- Parameters:
b
- the byte to be written.- Throws:
IOException
- if an I/O error occurs.
-
write
Writeslen
bytes from the specified byte array starting at offsetoff
to this buffered output stream.Ordinarily this method stores bytes from the given array into this stream's buffer, flushing the buffer to the underlying output stream as needed. If the requested length is at least as large as this stream's buffer, however, then this method will flush the buffer and write the bytes directly to the underlying output stream. Thus redundant
BufferedOutputStream
s will not copy data unnecessarily.- Specified by:
write
in interfaceDataOutput
- Overrides:
write
in classFilterOutputStream
- Parameters:
b
- the data.off
- the start offset in the data.len
- the number of bytes to write.- Throws:
IOException
- if an I/O error occurs.
-
flush
Flushes this buffered output stream. This forces any buffered output bytes to be written out to the underlying output stream.- Specified by:
flush
in interfaceFlushable
- Overrides:
flush
in classFilterOutputStream
- Throws:
IOException
- if an I/O error occurs.
-
writeBoolean
Writes aboolean
to the underlying output stream as a 1-byte value. The valuetrue
is written out as the value(byte)1
; the valuefalse
is written out as the value(byte)0
.- Specified by:
writeBoolean
in interfaceDataOutput
- Parameters:
v
- aboolean
value to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeByte
Writes out abyte
to the underlying output stream as a 1-byte value.- Specified by:
writeByte
in interfaceDataOutput
- Parameters:
v
- abyte
value to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeShort
Writes ashort
to the underlying output stream as two bytes, high byte first.- Specified by:
writeShort
in interfaceDataOutput
- Parameters:
v
- ashort
to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeChar
Writes achar
to the underlying output stream as a 2-byte value, high byte first.- Specified by:
writeChar
in interfaceDataOutput
- Parameters:
v
- achar
value to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeInt
Writes anint
to the underlying output stream as four bytes, high byte first.- Specified by:
writeInt
in interfaceDataOutput
- Parameters:
v
- anint
to be written.- Throws:
IOException
- if an I/O error occurs.
-
write2Int
Writes 2int
values, each of which is comprised of four bytes, to the output stream. The byte values to be written, in the order shown, are:
The bytes written by this method may be read by the(byte)(0xff & (v >> 24)) (byte)(0xff & (v >> 16)) (byte)(0xff & (v >> 8)) (byte)(0xff & v)
readInt
method of interfacejava.io.DataInput
, which will then return anint
equal tov
.- Parameters:
v1
- the firstint
value to be written.v2
- the firstint
value to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeLong
Writes along
to the underlying output stream as eight bytes, high byte first.- Specified by:
writeLong
in interfaceDataOutput
- Parameters:
v
- along
to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeFloat
Converts the float argument to anint
using thefloatToIntBits
method in classFloat
, and then writes thatint
value to the underlying output stream as a 4-byte quantity, high byte first.- Specified by:
writeFloat
in interfaceDataOutput
- Parameters:
v
- afloat
value to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
-
writeDouble
Converts the double argument to along
using thedoubleToLongBits
method in classDouble
, and then writes thatlong
value to the underlying output stream as an 8-byte quantity, high byte first.- Specified by:
writeDouble
in interfaceDataOutput
- Parameters:
v
- adouble
value to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
-
writeBytes
Writes out the string to the underlying output stream as a sequence of bytes. Each character in the string is written out, in sequence, by discarding its high eight bits.- Specified by:
writeBytes
in interfaceDataOutput
- Parameters:
s
- a string of bytes to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeChars
Writes a string to the underlying output stream as a sequence of characters. Each character is written to the data output stream as if by thewriteChar
method.- Specified by:
writeChars
in interfaceDataOutput
- Parameters:
s
- aString
value to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
-
writeUTF
Writes a string to the underlying output stream using modified UTF-8 encoding in a machine-independent manner.First, two bytes are written to the output stream as if by the
writeShort
method giving the number of bytes to follow. This value is the number of bytes actually written out, not the length of the string. Following the length, each character of the string is output, in sequence, using the modified UTF-8 encoding for the character. If no exception is thrown, the counterwritten
is incremented by the total number of bytes written to the output stream. This will be at least two plus the length ofstr
, and at most two plus thrice the length ofstr
.- Specified by:
writeUTF
in interfaceDataOutput
- Parameters:
str
- a string to be written.- Throws:
IOException
- if an I/O error occurs.
-
getNumWritten
public long getNumWritten()Report the number of bytes written through this stream.- Returns:
- total written byte count
-
getUnwrittenCount
public int getUnwrittenCount()Get the count of bytes in the buffer that have not been forwarded to the next OutputStream down.- Returns:
- backlog count in bytes
-
getNumFlushes
public int getNumFlushes()Return the number of times data was flushed to the next stream downstream.- Returns:
- int count of flush calls
-