Yes, it is possible to read bits from bytes while knowing the endianness of the host system. That is, if you want an exact representation of the file.
import sys
sys.byteorder
open("fname").read(1)
if (ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN));
// Java reads and writes bytes pretty naturally, also.
You will need to use bitmasks to read the actual bits from the file.