float readFloatLittleEndian()
   {
   // get 4 unsigned raw byte components, accumulating to an int,
   // then convert the 32-bit pattern to a float.
   int accum = 0;
   for ( int shiftBy=0; shiftBy<32; shiftBy+=8 )
      {
      accum |= ( readByte () & 0xff ) << shiftBy;
      }
   return Float.intBitsToFloat( accum );

   // there is no such method as Float.reverseBytes( f );

   }