如何在java中编写一个二维数组,以便C程序可以读取它

时间:2014-09-29 06:51:20

标签: java c arrays

我正在编写用Java编写的二维二进制数组,以便用C编写的遗留程序可以读取它。但是如果我使用ObjectOutputStream的writeObject方法,它会增加更多字节。我的意思是输出文件包含比所需更多的字节。我想我可以用C或C ++写出二维数组,但在此之前我想知道其他可能性是什么。

1 个答案:

答案 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;。可能需要根据值的排列方式调整顺序,因为您在注释链接中指定的格式指示从左下角开始。