我写这篇文章是为了用Java编写一个二维二进制数组,以便用C语言编写的遗留程序能够读取它。但是如果我使用ObjectOutputStream的writeObject方法,它会添加更多的字节。我的意思是输出文件包含比所需的更多的字节。我想我可以用C或C++写出二维数组,但是在做之前,我想知道其他的可能性是什么。
发布于 2014-09-29 08:02:11
从数组开始:
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“。顺序可能需要根据您的值的排列方式进行调整,因为您在注释链接中指定的格式指示从左下角开始。
https://stackoverflow.com/questions/26094013
复制相似问题