При записи в двоичный файл нет необходимости разбивать каждый элемент в матрице на «_».Программа знает, сколько байтов выделено для каждого элемента.
В следующем коде запись 2 удваивается без '_' между ними.После этого он считывает их обратно из файла и выводит данные.
public class Test {
public static void main(String[] args) throws Exception {
DataOutputStream dos = new DataOutputStream(new FileOutputStream("a.bin"));
dos.writeDouble(1.2);
dos.writeDouble(3.4);
dos.close();
DataInputStream dis = new DataInputStream(new FileInputStream("a.bin"));
System.out.println(dis.readDouble());
System.out.println(dis.readDouble());
dis.close();
}
}
Программа выводит:
1.2
3.4
Но если вы не записали файл, и есть '_ 'между элементами, вы можете использовать readChar()
после чтения каждого элемента из двоичного файла, как уже упоминалось @Bhaskar.
Наконец, с помощью ObjectOutputStream
можно записать весь массив сразу.
public class Test {
public static void main(String[] args) throws Exception {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("a.bin"));
double[] a = {1.2, 3.4};
oos.writeObject(a);
oos.close();
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("a.bin"));
double[] b = (double[]) ois.readObject();
System.out.println(b[0]);
System.out.println(b[1]);
ois.close();
}
}