-3
私の仕事は、JAVAを使ってバイナリ圧縮ファイルを読み込むことです。 C++とJAVAとの読み方に違いがあります。java/C++の読み込みバイナリファイルが異なります
私はJAVAで読むときに何が問題なのか分かりません。 私が書いたJAVAコードの問題を教えてください。
ください..ここ
は、サンプルコードC++やJAVAで助けます。ジャワで (C++で読み取る問題なし)
C++位
ifstream file(path, ios_base::in | ios_base::binary);
while (!file.eof())
{
file.read((char *)&j, sizeof(int));
if (file.eof()) break;
file.read((char *)&k, sizeof(int));
file.read((char *)&result_c[j][k], sizeof(float));
file.read((char *)&result_g[j][k], sizeof(float));
for (int l = 0; l < 6; l++)
{
file.read((char *)&result_i[j][k][l], sizeof(float));
file.read((char *)&result_t[j][k][l], sizeof(float));
}
}
#
fin = new FileInputStream(new File(_path));
bin = new BufferedInputStream(fin);
din = new DataInputStream(bin);
boolean _eof = false;
while (!_eof) {
int _ny = 0, _nx = 0;
float _cResult = 0.0f, _gResult = 0.0f;
float[] _iResult = new float[6];
float[] _tResult = new float[6];
try {
_ny = din.readInt(); // ny
_nx = din.readInt(); // nx
_cResult = din.readFloat();
_gResult = din.readFloat();
for (int i = 0; i < 6; i++) {
_iResult[i] = din.readFloat();
_tResult[i] = din.readFloat();
}
} catch (EOFException eofe) {
_eof = true;
}
}
C++はJavaではありません。 C++の 'sizeof(int)'と 'sizeof(float)'は、Javaと異なり、石で設定されていません。 – PaulMcKenzie