バイナリファイルを読み取るには、以下の方法を使用します。
public void readFile()
{
try
{
Reader in = new InputStreamReader( this.getClass().getResourceAsStream( this.fileName));
int count = (in.read() * 0xFF) + in.read();
int heights = in.read();
this.shapes = new int[count][];
for(int ii = 0;ii<count;ii++)
{
int gwidth = in.read();
int[] tempG = new int[gwidth * heights];
int len = (in.read() * 0xff) + in.read();
for(int jj = 0;jj<len;jj++)
{
tempG[top++] = in.read() * 0x1000000;
}
this.shapes[ii] = tempG;
}
in.close();
}catch(Exception e){}
}
netbeans エミュレーターと一部のデバイスでは完全に動作しますが、一部のデバイスとkemulatorでは、in.read() が char (2 バイト) を読み取るように見え、それらのデバイスとエミュレーターでアプリがクラッシュします。
ファイルをバイト単位で読み取るための最良の方法は何ですか?