@@ -0,0 +1,2319 @@
+package com.laytonsmith.PureUtilities.Common;%0A%0A/**%0A *%0A * @author Cailin%0A */%0Apublic class ByteArrayUtils %7B%0A%09private final boolean useUpper;%0A%09private final String middleUpper = %22 X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF %22;%0A%09private final String middleLower = %22 x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xa xb xc xd xe xf %22;%0A%09/**%0A%09 * Creates a new ByteArrayUtils object with default options%0A%09 */%0A%09public ByteArrayUtils() %7B%0A%09%09useUpper = true;%0A%09%7D%0A%0A%09public ByteArrayUtils(boolean useUpperCase) %7B%0A%09%09this.useUpper = useUpperCase;%0A%09%7D%0A%09public String baToHexTable(byte %5B%5D ba) %7B%0A        StringBuilder b = new StringBuilder();%0A        StringBuilder c1 = new StringBuilder();%0A        StringBuilder c2 = new StringBuilder();%0A        b.append(%22Address    %7C%22).append(useUpper ? middleUpper : middleLower).append(%22%7C ASCII            %7C%5Cn%22);%0A        for(int i = 0; i %3C ba.length + (16 - (ba.length %25 16)); i++) %7B%0A            if(i %25 16 == 0) %7B%0A                // First line, the address%0A                b.append(String.format(%220x%2507%22 + (useUpper?%22X%22:%22x%22), i / 16)).append(useUpper ? %22X %22 : %22x %22);%0A            %7D%0A            if(i %3C ba.length) %7B%0A                byte by = ba%5Bi%5D;%0A                c1.append(toHex(by)).append(%22 %22);%0A                char w = '.';%0A                if(by != 0) %7B%0A                    w = (char) by;%0A                %7D%0A                if(Character.isISOControl(by)) %7B%0A                    w = '.';%0A                %7D%0A                c2.append(w);%0A            %7D else %7B%0A                c1.append(%22.. %22);%0A                c2.append(%22.%22);%0A            %7D%0A            if(i %25 16 == 15) %7B%0A                // End of line, construct line%0A                b.append(%22%7C %22).append(c1.toString()).append(%22%7C %22)%0A                        .append(c2.toString()).append(%22 %7C%5Cn%22);%0A                c1 = new StringBuilder();%0A                c2 = new StringBuilder();%0A            %7D%0A        %7D%0A        return b.toString();%0A    %7D%0A%0A    private final static char%5B%5D upperHexArray = %220123456789ABCDEF%22.toCharArray();%0A%09private final static char%5B%5D lowerHexArray = %220123456789abcdef%22.toCharArray();%0A    private String toHex(byte b) %7B%0A        int v = b & 0xFF;%0A%09%09if(useUpper) %7B%0A%09%09%09return new String(new char%5B%5D%7BupperHexArray%5Bv %3E%3E%3E 4%5D, upperHexArray%5Bv & 0x0F%5D%7D);%0A%09%09%7D else %7B%0A%09%09%09return new String(new char%5B%5D%7BlowerHexArray%5Bv %3E%3E%3E 4%5D, lowerHexArray%5Bv & 0x0F%5D%7D);%0A%09%09%7D%0A    %7D%0A%7D%0A

Add ByteArrayUtils class