新しい日、新しい問題。Android - スペースで区切られたバイトで構成されるファイルを適切に解析するにはどうすればよいですか?
私はセンサーから生のバイトのストリームを取得するAndroidアプリで作業しています。そのようなパケットはそれぞれ19バイト長です。次のようにそのデータを格納するために、私はString.valueOf()を使用します。書き込んだファイルは、データと一致しているので、
String str = String.valueOf(values[0]) + " ";
for (byte i = 1; i < values.length; i++) {
str = str + values[i] + " ";
}
try {
txtWriter.write(str);
} catch (IOException ioe) {
Toast.makeText(ConnectActivity.this, "IOException occured.", Toast.LENGTH_SHORT).show();
}
の保存には、支障を与えないように思われます。ただし、後でファイルを取得する場合:
bufferedReader = new BufferedReader(new FileReader(fileName));
splitData = bufferedReader.readLine().split(" ");
for (int i = 0; i < splitData.length; i += 19) {
for (int j = 0; j < 19; j++) {
currentArray[j] = splitData[i+j].getBytes()[0];
}
processRXData(currentArray);
}
private void processRXData(byte[] data) {
ByteBuffer bb = ByteBuffer.allocate(20);
bb.order(ByteOrder.LITTLE_ENDIAN);
bb.put(data, 1, 18);
**print**(bb.getShort(0), bb.getShort(2), bb.getShort(4));
**print**(bb.getShort(12), bb.getShort(14), bb.getShort(16));
}
印刷された値が正しくありません。例えば
は、値{1,98,1,-49,-3,37,-3,-11,-1,71,0,-111,-1,-12,-1,-3,-1,4,0}
しかしながら{12601,11565,11571}
と{11565,11565,12340}
で{354,-561,-731}
と{-12,-3,4}
現在の結果を与えることが期待されます。
私はそれがgetBytes()の仕事であると予想していますが、回避策は見つかりません。 可能な解決策はありますか?
ありがとう、私がしたのは、 'splitData [i + j] .getBytes()[0]'を 'Byte.parseByte(splitData [i + j]) 'に変更することでした。私は一日ほとんど困惑していました! – Sriram