Я пишу, чтобы записать двумерный двоичный массив на Java, чтобы его можно было использовать в старой программе, написанной на C. Но если я использую метод writeObject ObjectOutputStream, он добавляет больше байтов. Я имею в виду, что выходной файл содержит больше байтов, чем требуется. Думаю, я мог бы написать двухмерный массив в C или C++, но прежде, чем я это сделаю, хотел узнать, каковы другие возможности.
Начиная с массива:
int rows = 6;
int columns = 5;
int i,j;
int[][] myArray = new int[rows][columns];
for (i=0; i<rows; i++) {
for (j=0; j<columns; j++) {
myArray[i][j] = i*j;
}
}
try {
FileOutputStream out = new FileOutputStream("outputDat");
ObjectOutputStream oout = new ObjectOutputStream(out);
for (i=0; i<rows; i++) {
for (j=0; j<columns; j++) {
oout.writeShort(myArray[i][j] & 0xFFFF); // Edited this line!
}
}
oout.close();
} catch (Exception ex) {
ex.printStackTrace();
}
Это должно выводить целые значения 2 байта (16 бит) в файл данных "outputDat". Возможно, заказ нужно будет скорректировать в зависимости от того, как настроены ваши значения, поскольку формат, указанный вами в ссылке комментариев, указывает, начиная с нижнего левого.