ch.qos.logback.core.encoder.ByteArrayUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of virtdata-lib-realer Show documentation
Show all versions of virtdata-lib-realer Show documentation
With inspiration from other libraries
/**
* Logback: the reliable, generic, fast and flexible logging framework.
* Copyright (C) 1999-2015, QOS.ch. All rights reserved.
*
* This program and the accompanying materials are dual-licensed under
* either the terms of the Eclipse Public License v1.0 as published by
* the Eclipse Foundation
*
* or (per the licensee's choosing)
*
* under the terms of the GNU Lesser General Public License version 2.1
* as published by the Free Software Foundation.
*/
package ch.qos.logback.core.encoder;
import java.io.ByteArrayOutputStream;
public class ByteArrayUtil {
// big-endian
static void writeInt(byte[] byteArray, int offset, int i) {
for (int j = 0; j < 4; j++) {
int shift = 24 - j * 8;
byteArray[offset + j] = (byte) (i >>> shift);
}
}
static void writeInt(ByteArrayOutputStream baos, int i) {
for (int j = 0; j < 4; j++) {
int shift = 24 - j * 8;
baos.write((byte) (i >>> shift));
}
}
// big-endian
static int readInt(byte[] byteArray, int offset) {
int i = 0;
for (int j = 0; j < 4; j++) {
int shift = 24 - j * 8;
i += (byteArray[offset + j] & 0xFF) << shift;
}
return i;
}
static public String toHexString(byte[] ba) {
StringBuilder sbuf = new StringBuilder();
for (byte b : ba) {
String s = Integer.toHexString((int) (b & 0xff));
if (s.length() == 1) {
sbuf.append('0');
}
sbuf.append(s);
}
return sbuf.toString();
}
static public byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] ba = new byte[len / 2];
for (int i = 0; i < ba.length; i++) {
int j = i * 2;
int t = Integer.parseInt(s.substring(j, j + 2), 16);
byte b = (byte) (t & 0xFF);
ba[i] = b;
}
return ba;
}
}