我使用以下方法读取二进制文件:
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() 读取了一个字符(两个字节),它导致我的应用程序在这些设备和模拟器上崩溃。
以字节为单位读取文件的最佳方法是什么?