С какой кодировкой работают DataOutputStream и DataInputStream? Например:
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Soltuion {

  public static void main(String[] args) throws IOException {

    // Как записывает true:
    // записали:
    DataOutputStream fileOutput = new DataOutputStream(new FileOutputStream("C:\\testjava.txt"));
    fileOutput.writeBoolean(true);

    // читаем:
    FileInputStream fileStream = new FileInputStream("C:\\testjava.txt");
    System.out.println(fileStream.read()); // 1

    // Как записывает double:
    // записали:
    fileOutput.writeDouble(3.2);

    // читаем:
    System.out.println(fileStream.read()); // 64
    System.out.println(fileStream.read()); // 9
    System.out.println(fileStream.read()); // 153
    System.out.println(fileStream.read()); // 153
    System.out.println(fileStream.read()); // 153
    System.out.println(fileStream.read()); // 153
    System.out.println(fileStream.read()); // 153
    System.out.println(fileStream.read()); // 154
    System.out.println(fileStream.read()); // -1

  }
}
Вот как потом в блокноте эту информацию увидеть (расшифровать):