【初心者】Java質問・相談スレッド112【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0594デフォルトの名無しさん
2008/02/21(木) 21:38:57FileInputStream fis = new FileInputStream(file);
FileChannel srcChannel = fis.getChannel();
// 一つのデータは 2 byte (16 bit)
ByteBuffer buffer = ByteBuffer.allocateDirect(length * 16);
buffer.order(ByteOrder.LITTLE_ENDIAN);
// 読み込み
srcChannel.read(buffer);
srcChannel.close();
fis.close();
buffer.clear();
int ch1, ch2;
for(int i = 0; i < 1000; i++){
ch1 = buffer.get() & 0xff;
ch2 = buffer.get() & 0xff;
data[i] = (ch1 | (ch2 << 8)) & 0xffff;
}
buffer.clear();
int[] data という配列に
バイナリファイル中の符号なし short を読み込みたいのですが、
getShort() をつかったら、符号ありで読まれてしまったので、上のようなコード
でやっています。
処理が遅い(無駄計算が多い)気がするのですが、もっと良い方法はありますでしょうか
■ このスレッドは過去ログ倉庫に格納されています