我正在编写用Java编写的二维二进制数组,以便用C编写的遗留程序可以读取它。但是如果我使用ObjectOutputStream的writeObject方法,它会增加更多字节。我的意思是输出文件包含比所需更多的字节。我想我可以用C或C ++写出二维数组,但在此之前我想知道其他可能性是什么。
答案 0 :(得分:2)
从数组开始:
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位)整数值输出到您的数据文件&#34; outputDat&#34;。可能需要根据值的排列方式调整顺序,因为您在注释链接中指定的格式指示从左下角开始。