【发布时间】:2014-11-10 09:06:00
【问题描述】:
使用此处提供的解决方案 -Java input and output binary file byte size are not matching after transformation 我将一个二维数组写入磁盘,其中包含无符号短裤。当我通过读取该文件的值来检查它们时,我仍然看到有符号值,即负值。代码有什么错误?
fos = new FileOutputStream(destFile);
short[][] data = getData(); //defined in another class
if (ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN)
{
for (int i = 0;i<1200;i++)
{
for (int j = 0; j <1200;j++)
{
fos.write((data[i][j] >> 8) & 0xFF);
fos.write(data[i][j] & 0xFF);
}
}
}
else
{
for (int i = 0;i<1200;i++)
{
for (int j = 0; j <1200;j++)
{
fos.write(data[i][j] & 0xFF);
fos.write((data[i][j] >> 8) & 0xFF);
}
}
}
【问题讨论】: