У вас должно быть что-то вроде этого
try {
DataInputStream di = new DataInputStream(is);
di.marke(9999);
short key = di.readShort();
short val = di.readShort();
di.reset();
di.skip(val);
byte[] b= new byte[255];
di.read(b);
}catch(Exception ex ) {
ex.printStackTrace();
}
Я предпочитаю не использовать методы marke / reset, я думаю, что лучше сохранять смещение от местоположения val, а не от начала файла, чтобы вы могли пропустить эти методы. Я думаю, что у них есть проблемы с сомом на некоторых устройствах.
Еще одно замечание: я не рекомендую открывать файл размером 600 КБ, это приведет к сбою приложения на многих младших устройствах, его следует разбить на несколько файлов.