Modifier and Type | Method and Description |
---|---|
Buffer |
buffer()
Returns this sink's internal buffer.
|
BufferedSink |
emit()
Writes all buffered data to the underlying sink, if one exists.
|
BufferedSink |
emitCompleteSegments()
Writes complete segments to the underlying sink, if one exists.
|
void |
flush()
Writes all buffered data to the underlying sink, if one exists.
|
OutputStream |
outputStream()
Returns an output stream that writes to this sink.
|
BufferedSink |
write(byte[] source)
Like
OutputStream.write(byte[]) , this writes a complete byte array to
this sink. |
BufferedSink |
write(byte[] source,
int offset,
int byteCount)
Like
OutputStream.write(byte[], int, int) , this writes byteCount
bytes of source , starting at offset . |
BufferedSink |
write(ByteString byteString) |
BufferedSink |
write(Source source,
long byteCount)
Removes
byteCount bytes from source and appends them to this sink. |
long |
writeAll(Source source)
Removes all bytes from
source and appends them to this sink. |
BufferedSink |
writeByte(int b)
Writes a byte to this sink.
|
BufferedSink |
writeDecimalLong(long v)
Writes a long to this sink in signed decimal form (i.e., as a string in base 10).
|
BufferedSink |
writeHexadecimalUnsignedLong(long v)
Writes a long to this sink in hexadecimal form (i.e., as a string in base 16).
|
BufferedSink |
writeInt(int i)
Writes a big-endian int to this sink using four bytes.
|
BufferedSink |
writeIntLe(int i)
Writes a little-endian int to this sink using four bytes.
|
BufferedSink |
writeLong(long v)
Writes a big-endian long to this sink using eight bytes.
|
BufferedSink |
writeLongLe(long v)
Writes a little-endian long to this sink using eight bytes.
|
BufferedSink |
writeShort(int s)
Writes a big-endian short to this sink using two bytes.
|
BufferedSink |
writeShortLe(int s)
Writes a little-endian short to this sink using two bytes.
|
BufferedSink |
writeString(String string,
Charset charset)
Encodes
string in charset and writes it to this sink. |
BufferedSink |
writeString(String string,
int beginIndex,
int endIndex,
Charset charset)
Encodes the characters at
beginIndex up to endIndex from string in
charset and writes it to this sink. |
BufferedSink |
writeUtf8(String string)
Encodes
string in UTF-8 and writes it to this sink. |
BufferedSink |
writeUtf8(String string,
int beginIndex,
int endIndex)
Encodes the characters at
beginIndex up to endIndex from string in
UTF-8 and writes it to this sink. |
BufferedSink |
writeUtf8CodePoint(int codePoint)
Encodes
codePoint in UTF-8 and writes it to this sink. |
Buffer buffer()
BufferedSink write(ByteString byteString) throws IOException
IOException
BufferedSink write(byte[] source) throws IOException
OutputStream.write(byte[])
, this writes a complete byte array to
this sink.IOException
BufferedSink write(byte[] source, int offset, int byteCount) throws IOException
OutputStream.write(byte[], int, int)
, this writes byteCount
bytes of source
, starting at offset
.IOException
long writeAll(Source source) throws IOException
source
and appends them to this sink. Returns the
number of bytes read which will be 0 if source
is exhausted.IOException
BufferedSink write(Source source, long byteCount) throws IOException
byteCount
bytes from source
and appends them to this sink.IOException
BufferedSink writeUtf8(String string) throws IOException
string
in UTF-8 and writes it to this sink.
Buffer buffer = new Buffer();
buffer.writeUtf8("Uh uh uh!");
buffer.writeByte(' ');
buffer.writeUtf8("You didn't say the magic word!");
assertEquals("Uh uh uh! You didn't say the magic word!", buffer.readUtf8());
IOException
BufferedSink writeUtf8(String string, int beginIndex, int endIndex) throws IOException
beginIndex
up to endIndex
from string
in
UTF-8 and writes it to this sink.
Buffer buffer = new Buffer();
buffer.writeUtf8("I'm a hacker!\n", 6, 12);
buffer.writeByte(' ');
buffer.writeUtf8("That's what I said: you're a nerd.\n", 29, 33);
buffer.writeByte(' ');
buffer.writeUtf8("I prefer to be called a hacker!\n", 24, 31);
assertEquals("hacker nerd hacker!", buffer.readUtf8());
IOException
BufferedSink writeUtf8CodePoint(int codePoint) throws IOException
codePoint
in UTF-8 and writes it to this sink.IOException
BufferedSink writeString(String string, Charset charset) throws IOException
string
in charset
and writes it to this sink.IOException
BufferedSink writeString(String string, int beginIndex, int endIndex, Charset charset) throws IOException
beginIndex
up to endIndex
from string
in
charset
and writes it to this sink.IOException
BufferedSink writeByte(int b) throws IOException
IOException
BufferedSink writeShort(int s) throws IOException
Buffer buffer = new Buffer();
buffer.writeShort(32767);
buffer.writeShort(15);
assertEquals(4, buffer.size());
assertEquals((byte) 0x7f, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x0f, buffer.readByte());
assertEquals(0, buffer.size());
IOException
BufferedSink writeShortLe(int s) throws IOException
Buffer buffer = new Buffer();
buffer.writeShortLe(32767);
buffer.writeShortLe(15);
assertEquals(4, buffer.size());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0x7f, buffer.readByte());
assertEquals((byte) 0x0f, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals(0, buffer.size());
IOException
BufferedSink writeInt(int i) throws IOException
Buffer buffer = new Buffer();
buffer.writeInt(2147483647);
buffer.writeInt(15);
assertEquals(8, buffer.size());
assertEquals((byte) 0x7f, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x0f, buffer.readByte());
assertEquals(0, buffer.size());
IOException
BufferedSink writeIntLe(int i) throws IOException
Buffer buffer = new Buffer();
buffer.writeIntLe(2147483647);
buffer.writeIntLe(15);
assertEquals(8, buffer.size());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0x7f, buffer.readByte());
assertEquals((byte) 0x0f, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals(0, buffer.size());
IOException
BufferedSink writeLong(long v) throws IOException
Buffer buffer = new Buffer();
buffer.writeLong(9223372036854775807L);
buffer.writeLong(15);
assertEquals(16, buffer.size());
assertEquals((byte) 0x7f, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x0f, buffer.readByte());
assertEquals(0, buffer.size());
IOException
BufferedSink writeLongLe(long v) throws IOException
Buffer buffer = new Buffer();
buffer.writeLongLe(9223372036854775807L);
buffer.writeLongLe(15);
assertEquals(16, buffer.size());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0xff, buffer.readByte());
assertEquals((byte) 0x7f, buffer.readByte());
assertEquals((byte) 0x0f, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals((byte) 0x00, buffer.readByte());
assertEquals(0, buffer.size());
IOException
BufferedSink writeDecimalLong(long v) throws IOException
Buffer buffer = new Buffer();
buffer.writeDecimalLong(8675309L);
buffer.writeByte(' ');
buffer.writeDecimalLong(-123L);
buffer.writeByte(' ');
buffer.writeDecimalLong(1L);
assertEquals("8675309 -123 1", buffer.readUtf8());
IOException
BufferedSink writeHexadecimalUnsignedLong(long v) throws IOException
Buffer buffer = new Buffer();
buffer.writeHexadecimalUnsignedLong(65535L);
buffer.writeByte(' ');
buffer.writeHexadecimalUnsignedLong(0xcafebabeL);
buffer.writeByte(' ');
buffer.writeHexadecimalUnsignedLong(0x10L);
assertEquals("ffff cafebabe 10", buffer.readUtf8());
IOException
void flush() throws IOException
BufferedSink b0 = new Buffer();
BufferedSink b1 = Okio.buffer(b0);
BufferedSink b2 = Okio.buffer(b1);
b2.writeUtf8("hello");
assertEquals(5, b2.buffer().size());
assertEquals(0, b1.buffer().size());
assertEquals(0, b0.buffer().size());
b2.flush();
assertEquals(0, b2.buffer().size());
assertEquals(0, b1.buffer().size());
assertEquals(5, b0.buffer().size());
flush
in interface Flushable
flush
in interface Sink
IOException
BufferedSink emit() throws IOException
flush()
, but
weaker. Call this before this buffered sink goes out of scope so that its data can reach its
destination.
BufferedSink b0 = new Buffer();
BufferedSink b1 = Okio.buffer(b0);
BufferedSink b2 = Okio.buffer(b1);
b2.writeUtf8("hello");
assertEquals(5, b2.buffer().size());
assertEquals(0, b1.buffer().size());
assertEquals(0, b0.buffer().size());
b2.emit();
assertEquals(0, b2.buffer().size());
assertEquals(5, b1.buffer().size());
assertEquals(0, b0.buffer().size());
b1.emit();
assertEquals(0, b2.buffer().size());
assertEquals(0, b1.buffer().size());
assertEquals(5, b0.buffer().size());
IOException
BufferedSink emitCompleteSegments() throws IOException
flush()
, but
weaker. Use this to limit the memory held in the buffer to a single segment. Typically
application code will not need to call this: it is only necessary when application code writes
directly to this sink's buffer.
BufferedSink b0 = new Buffer();
BufferedSink b1 = Okio.buffer(b0);
BufferedSink b2 = Okio.buffer(b1);
b2.buffer().write(new byte[20_000]);
assertEquals(20_000, b2.buffer().size());
assertEquals( 0, b1.buffer().size());
assertEquals( 0, b0.buffer().size());
b2.emitCompleteSegments();
assertEquals( 3_616, b2.buffer().size());
assertEquals( 0, b1.buffer().size());
assertEquals(16_384, b0.buffer().size()); // This example assumes 8192 byte segments.
IOException
OutputStream outputStream()
Copyright © 2017. All rights reserved.