Дражайшие форумчане! Решил я поковырять и поискать баги в jsr75i (исходники), ибо пишу одну банально полезнейшую утилитку для nokia s40. Конкретно для этого случая мне понадобилась самописная функция (объединяющая open_file, read_bytes и close_file, иными словами, одноразовое чтение из файла по смещению определённого количества байт и его закрытие), и вот на что я напоролся в процессе экспериментов (в яве разбирался по ходу):
во всех наших skip и reset действо осуществляется через try и проверку ненулёвости 'dis' (DataInputStream), который скорее всего не обнуляется в случае закрытия файла. В итоге работспособный код выглядит:
public static String read_buffer(String name, int off, int len) {
StringBuffer s = new StringBuffer();
try {
fc = (FileConnection) Connector.open("file://"+name);
byte[] d = new byte[len];
// if(dis==null)
dis = fc.openDataInputStream();
dis.read(d, off, len);
for(int i=0;i<len;i++){
byte b= d[i];
s.append((char)b);
}
// if(dis!=null)
dis.close();
fc.close();
} catch(Exception e) {return "";}
return s.toString();
}
Как-то так... Быть может, суть где-то рядом, и оно поможет в доработке либы.