Byte Array
/** * This file is distributed under the GPL * $Id: ByteArray.java 1619 2008-09-16 16:15:45Z scotta $ *///package net.bnubot.util; import java.io.UnsupportedEncodingException; /** * @author scotta */publicfinalclass ByteArray { privatefinalbyte[] data; public ByteArray(byte b) { this.data = newbyte[] {b}; } public ByteArray(byte[] data) { this.data = data.clone(); } public ByteArray(String text) { byte[] data; try { data = text.getBytes("UTF-8"); } catch(UnsupportedEncodingException e) { data = text.getBytes(); } this.data = data; } public ByteArray(byte[] data, int beginIndex, int endIndex) { this.data = newbyte[endIndex - beginIndex]; System.arraycopy(data, beginIndex, this.data, 0, this.data.length); } publicfinalbyte[] getBytes() { return data; } public ByteArray concat(byte[] str) { byte[] out = newbyte[data.length + str.length]; System.arraycopy(data, 0, out, 0, data.length); System.arraycopy(str, 0, out, data.length, str.length); returnnew ByteArray(out); } public ByteArray concat(ByteArray str) { return concat(str.data); } public ByteArray removeFirst() { return substring(1); } @Override public String toString() { try { returnnew String(data, "UTF-8"); } catch (UnsupportedEncodingException e) { returnnew String(data); } } publicint length() { return data.length; } publicbyte byteAt(int i) { return data[i]; } @Override publicboolean equals(Object obj) { if(obj instanceofbyte[]) { byte[] x = (byte[])obj; if(x.length != data.length) return false; for(int i = 0; i < x.length; i++) { if(x[i] != data[i]) return false; } return true; } if(obj instanceof ByteArray) return equals(((ByteArray)obj).data); if(obj instanceof String) return toString().equals(obj); return false; } public ByteArray substring(int beginIndex) { return substring(beginIndex, data.length); } public ByteArray substring(int beginIndex, int endIndex) { returnnew ByteArray(data, beginIndex, endIndex); } } /** * This file is distributed under the GPL * $Id: ByteArrayTest.java 1619 2008-09-16 16:15:45Z scotta $ *//* package net.bnubot.util; import junit.framework.TestCase; // * @author scotta public class ByteArrayTest extends TestCase { public void testRemoveFirst() { ByteArray ba = new ByteArray("abcdefgh"); assertEquals("bcdefgh", ba.removeFirst().toString()); } public void testConcat() { ByteArray ba1 = new ByteArray("abcd"); ByteArray ba2 = new ByteArray("efgh"); assertEquals("abcdefgh", ba1.concat(ba2).toString()); } public void testSubString() { ByteArray ba = new ByteArray("abcdefgh"); assertEquals("bcdefgh", ba.removeFirst().toString()); } } */
Related examples in the same category