1 package net.osdn.gokigen.cameratest.fuji;
3 import java.nio.ByteBuffer;
4 import java.nio.CharBuffer;
5 import java.nio.charset.Charset;
6 import java.util.Arrays;
12 public class ReceivedDataHolder
14 private final byte[] data;
15 private static final int DATA_OFFSET = 18;
17 ReceivedDataHolder(byte[] data, int length)
19 this.data = Arrays.copyOfRange(data, 0, length);
22 ReceivedDataHolder(char[] data, int length)
24 byte[] convertedData = toBytes(data);
25 this.data = Arrays.copyOfRange(convertedData, 0, length);
28 public char[] getCharData()
30 String text = new String(data);
31 return (text.toCharArray());
34 public byte[] getData()
39 public ByteBuffer getByteBuffer()
41 ByteBuffer dataBuffer = ByteBuffer.allocateDirect(data.length - DATA_OFFSET);
42 dataBuffer.put(Arrays.copyOfRange(data, DATA_OFFSET, (data.length - DATA_OFFSET)));
46 public int getLength()
48 return (data.length - DATA_OFFSET);
53 * (https://stackoverflow.com/questions/5513144/converting-char-to-byte より)
55 private byte[] toBytes(char[] chars)
57 CharBuffer charBuffer = CharBuffer.wrap(chars);
58 ByteBuffer byteBuffer = Charset.forName("UTF-8").encode(charBuffer);
59 byte[] bytes = Arrays.copyOfRange(byteBuffer.array(), byteBuffer.position(), byteBuffer.limit());
60 Arrays.fill(byteBuffer.array(), (byte) 0x00);