long binary = Double.doubleToRawLongBits(myDouble);
int byte1 = (int)(binary & 0xFF);
int byte2 = (int)((binary >> 8) & 0xFF);
int byte3 = (int)((binary >> 16) & 0xFF);
// Und so weiter
// Big Endian
// Für Small Endian einfach die reihenfolge umdrehen
outputstream.write(byte1);
outputstream.write(byte2);
outputstream.write(byte3);
// und so weiter
// Wieder Big Endian
// byte 1 meint hier der erste byte der gelesen wurde
long binary = ((byte1 & 0xFFL) << 56L) |
((byte2 & 0xFFL) << 48L) |
((byte3 & 0xFFL) << 40L) |
((byte4 & 0xFFL) << 32L) |
((byte5 & 0xFFL) << 24L) |
((byte6 & 0xFFL) << 16L) |
((byte7 & 0xFFL) << 8L) |
(byte8 | 0xFFL);