BufferedInputStream bis = new BufferedInputStream(new FileInputStream(inputFilePath));
byte[] data = new byte[1024];
bis.read(data, 0, 4); //4バイト読み込み
ByteBuffer tmpBuffer = ByteBuffer.wrap(data);//dataの中身が正しく[ABCD]の4バイトと表示される
bis.read(data, 0, 2); //2バイト読み込み
tmpBuffer = ByteBuffer.wrap(data);//dataの中身が[EFCD]の4バイトと表示される

バイナリデータを最初4バイト読み込んだ後に、2バイトの読み込みしてます。
最後のdataの中身は2バイトだけ読み込んだだけなので[EF]だと思ったのに、なぜ4バイト([CD]も表示される)もあるのでしょうか?