- 594 名前:デフォルトの名無しさん [2008/02/21(木) 21:38:57 ]
- 質問させてください。
FileInputStream 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() をつかったら、符号ありで読まれてしまったので、上のようなコード でやっています。 処理が遅い(無駄計算が多い)気がするのですが、もっと良い方法はありますでしょうか
|

|