DataOutputStream и DataInputStream работают со своей особой кодировкой, которую можно посмотреть в исходниках. Это позволяет хранить boolean-значение в 1 байте и т. п.
Очевидными особами в блокноте такое не прочитать, потому что блокнот не знает вышеупомянутый кодировку. Можно читать через DataInputStream.