ByteBufOutputStream Class — netty Architecture
Architecture documentation for the ByteBufOutputStream class in ByteBufOutputStream.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD b0f015ed_c496_fa06_0ae3_0f347b86e7ca["ByteBufOutputStream"] 38b742d4_f5ba_8e56_4ae2_ccdfbe05d010["ByteBufOutputStream.java"] b0f015ed_c496_fa06_0ae3_0f347b86e7ca -->|defined in| 38b742d4_f5ba_8e56_4ae2_ccdfbe05d010 65385e92_8d8f_eee5_e23c_ea8442aaac98["ByteBufOutputStream()"] b0f015ed_c496_fa06_0ae3_0f347b86e7ca -->|method| 65385e92_8d8f_eee5_e23c_ea8442aaac98 043eeb2c_c943_12a3_2237_36368287a3cc["writtenBytes()"] b0f015ed_c496_fa06_0ae3_0f347b86e7ca -->|method| 043eeb2c_c943_12a3_2237_36368287a3cc 8948913d_f22f_05e9_f243_f3e88633649d["write()"] b0f015ed_c496_fa06_0ae3_0f347b86e7ca -->|method| 8948913d_f22f_05e9_f243_f3e88633649d 1c512398_5248_4a9b_5c8d_d055de785d37["writeBoolean()"] b0f015ed_c496_fa06_0ae3_0f347b86e7ca -->|method| 1c512398_5248_4a9b_5c8d_d055de785d37 0e2bdedb_2789_c19b_24ec_e81108dac92f["writeByte()"] b0f015ed_c496_fa06_0ae3_0f347b86e7ca -->|method| 0e2bdedb_2789_c19b_24ec_e81108dac92f a7aede63_7efc_99b6_3c91_428c0daab5c3["writeBytes()"] b0f015ed_c496_fa06_0ae3_0f347b86e7ca -->|method| a7aede63_7efc_99b6_3c91_428c0daab5c3 1691042f_559f_627b_80ee_fd43cb3b6c22["writeChar()"] b0f015ed_c496_fa06_0ae3_0f347b86e7ca -->|method| 1691042f_559f_627b_80ee_fd43cb3b6c22 4482b514_0a6d_2713_2535_9556c8d0066d["writeChars()"] b0f015ed_c496_fa06_0ae3_0f347b86e7ca -->|method| 4482b514_0a6d_2713_2535_9556c8d0066d 25506d0e_8e9b_05b9_1833_7ee80aa62131["writeDouble()"] b0f015ed_c496_fa06_0ae3_0f347b86e7ca -->|method| 25506d0e_8e9b_05b9_1833_7ee80aa62131 8d0bd6a4_626b_cca1_2674_aead0dfc7aa7["writeFloat()"] b0f015ed_c496_fa06_0ae3_0f347b86e7ca -->|method| 8d0bd6a4_626b_cca1_2674_aead0dfc7aa7 e78acb35_6935_d23c_147f_c05f671071bc["writeInt()"] b0f015ed_c496_fa06_0ae3_0f347b86e7ca -->|method| e78acb35_6935_d23c_147f_c05f671071bc 207894ef_6591_a76b_7ede_29e06e452442["writeLong()"] b0f015ed_c496_fa06_0ae3_0f347b86e7ca -->|method| 207894ef_6591_a76b_7ede_29e06e452442 973dd865_b405_694a_c6be_612cef92083a["writeShort()"] b0f015ed_c496_fa06_0ae3_0f347b86e7ca -->|method| 973dd865_b405_694a_c6be_612cef92083a
Relationship Graph
Source Code
buffer/src/main/java/io/netty/buffer/ByteBufOutputStream.java lines 38–188
public class ByteBufOutputStream extends OutputStream implements DataOutput {
private final ByteBuf buffer;
private final int startIndex;
private DataOutputStream utf8out; // lazily-instantiated
private boolean closed;
private final boolean releaseOnClose;
/**
* Creates a new stream which writes data to the specified {@code buffer}.
*/
public ByteBufOutputStream(ByteBuf buffer) {
this(buffer, false);
}
/**
* Creates a new stream which writes data to the specified {@code buffer}.
*
* @param buffer Writes data to the buffer for this {@link OutputStream}.
* @param releaseOnClose {@code true} means that when {@link #close()} is called then {@link ByteBuf#release()} will
* be called on {@code buffer}.
*/
public ByteBufOutputStream(ByteBuf buffer, boolean releaseOnClose) {
this.releaseOnClose = releaseOnClose;
this.buffer = ObjectUtil.checkNotNull(buffer, "buffer");
startIndex = buffer.writerIndex();
}
/**
* Returns the number of written bytes by this stream so far.
*/
public int writtenBytes() {
return buffer.writerIndex() - startIndex;
}
@Override
public void write(byte[] b, int off, int len) throws IOException {
buffer.writeBytes(b, off, len);
}
@Override
public void write(byte[] b) throws IOException {
buffer.writeBytes(b);
}
@Override
public void write(int b) throws IOException {
buffer.writeByte(b);
}
@Override
public void writeBoolean(boolean v) throws IOException {
buffer.writeBoolean(v);
}
@Override
public void writeByte(int v) throws IOException {
buffer.writeByte(v);
}
@Override
public void writeBytes(String s) throws IOException {
// We don't use `ByteBuf.writeCharSequence` here, because `writeBytes` is specified to only write the
// lower-order by of multibyte characters (exactly one byte per character in the string), while
// `writeCharSequence` will instead write a '?' replacement character.
int length = s.length();
buffer.ensureWritable(length);
int offset = buffer.writerIndex();
for (int i = 0; i < length; i++) {
buffer.setByte(offset + i, (byte) s.charAt(i));
}
buffer.writerIndex(offset + length);
}
@Override
public void writeChar(int v) throws IOException {
buffer.writeChar(v);
}
@Override
public void writeChars(String s) throws IOException {
Source
Frequently Asked Questions
What is the ByteBufOutputStream class?
ByteBufOutputStream is a class in the netty codebase, defined in buffer/src/main/java/io/netty/buffer/ByteBufOutputStream.java.
Where is ByteBufOutputStream defined?
ByteBufOutputStream is defined in buffer/src/main/java/io/netty/buffer/ByteBufOutputStream.java at line 38.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free