mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-05-22 19:15:49 +00:00
trunk contents moved to root
This commit is contained in:
129
libsrc/jpproxy/src/com/jpexs/proxy/ByteArray.java
Normal file
129
libsrc/jpproxy/src/com/jpexs/proxy/ByteArray.java
Normal file
@@ -0,0 +1,129 @@
|
||||
package com.jpexs.proxy;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
||||
public class ByteArray {
|
||||
public byte[] bytes;
|
||||
public int offset = 0;
|
||||
|
||||
/**
|
||||
* Create a ByteArray with the default size.
|
||||
*/
|
||||
public ByteArray() {
|
||||
this(512);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a ByteArray with a specific default size.
|
||||
*/
|
||||
public ByteArray(int size) {
|
||||
bytes = new byte[size];
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a ByteArray from a String.
|
||||
*/
|
||||
public ByteArray(String s) {
|
||||
this(s.length());
|
||||
append(s);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a ByteArray from an array of bytes.
|
||||
*/
|
||||
public ByteArray(byte[] b) {
|
||||
this(b.length);
|
||||
append(b);
|
||||
}
|
||||
|
||||
/**
|
||||
* Append a byte.
|
||||
*/
|
||||
public void append(byte ch) {
|
||||
if (offset == bytes.length) {
|
||||
byte[] tmpbytes = bytes;
|
||||
bytes = new byte[tmpbytes.length * 2];
|
||||
System.arraycopy(tmpbytes, 0, bytes, 0, offset);
|
||||
}
|
||||
bytes[offset++] = ch;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append a ByteArray.
|
||||
*/
|
||||
public void append(ByteArray b) {
|
||||
if (bytes.length - offset < b.length()) {
|
||||
byte[] tmpbytes = bytes;
|
||||
bytes = new byte[tmpbytes.length + b.length()];
|
||||
System.arraycopy(tmpbytes, 0, bytes, 0, offset);
|
||||
}
|
||||
System.arraycopy(b.bytes, 0, bytes, offset, b.length());
|
||||
offset += b.length();
|
||||
}
|
||||
|
||||
/**
|
||||
* Append an array of bytes.
|
||||
*/
|
||||
public void append(byte[] b) {
|
||||
if (bytes.length - offset < b.length) {
|
||||
byte[] tmpbytes = bytes;
|
||||
bytes = new byte[tmpbytes.length + b.length];
|
||||
System.arraycopy(tmpbytes, 0, bytes, 0, offset);
|
||||
}
|
||||
System.arraycopy(b, 0, bytes, offset, b.length);
|
||||
offset += b.length;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append a String.
|
||||
*/
|
||||
public void append(String s) {
|
||||
append(s.getBytes());
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert to String.
|
||||
*/
|
||||
public String toString() {
|
||||
return new String(bytes, 0, offset);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the bytes.
|
||||
*/
|
||||
public byte[] getBytes() {
|
||||
return bytes;
|
||||
}
|
||||
|
||||
public void writeTo(OutputStream out)
|
||||
throws IOException {
|
||||
out.write(bytes, 0, offset);
|
||||
}
|
||||
|
||||
public byte get(int i) {
|
||||
return bytes[i];
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the number of bytes.
|
||||
*/
|
||||
public int length() {
|
||||
return offset;
|
||||
}
|
||||
|
||||
public void erase() {
|
||||
offset = 0;
|
||||
}
|
||||
|
||||
public void chop() {
|
||||
chop(1);
|
||||
}
|
||||
|
||||
public void chop(int i) {
|
||||
offset -= i;
|
||||
if (offset < 0) {
|
||||
offset = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user