48 lines
1003 B
Java
48 lines
1003 B
Java
package jxl.biff;
|
|
|
|
public class ByteArray {
|
|
private int growSize;
|
|
|
|
private byte[] bytes;
|
|
|
|
private int pos;
|
|
|
|
private static final int defaultGrowSize = 1024;
|
|
|
|
public ByteArray() {
|
|
this(1024);
|
|
}
|
|
|
|
public ByteArray(int gs) {
|
|
this.growSize = gs;
|
|
this.bytes = new byte[1024];
|
|
this.pos = 0;
|
|
}
|
|
|
|
public void add(byte b) {
|
|
checkSize(1);
|
|
this.bytes[this.pos] = b;
|
|
this.pos++;
|
|
}
|
|
|
|
public void add(byte[] b) {
|
|
checkSize(b.length);
|
|
System.arraycopy(b, 0, this.bytes, this.pos, b.length);
|
|
this.pos += b.length;
|
|
}
|
|
|
|
public byte[] getBytes() {
|
|
byte[] returnArray = new byte[this.pos];
|
|
System.arraycopy(this.bytes, 0, returnArray, 0, this.pos);
|
|
return returnArray;
|
|
}
|
|
|
|
private void checkSize(int sz) {
|
|
while (this.pos + sz >= this.bytes.length) {
|
|
byte[] newArray = new byte[this.bytes.length + this.growSize];
|
|
System.arraycopy(this.bytes, 0, newArray, 0, this.pos);
|
|
this.bytes = newArray;
|
|
}
|
|
}
|
|
}
|