To jest klasa tworząca rekord (tablicę byte[]):
final class SimpleRecord {
private final static int IMIE_INDEX = 0;
private final static int NAZW_INDEX = 40;
private final static int NR_INDEX = 80;
private final static int DATA_INDEX = 120;
private final static int FIELD_LEN = 40;
public final static int MAX_REC_LEN = 160;
private static StringBuffer recBuf = new StringBuffer(MAX_REC_LEN);
private static void clearBuf() {
for(int i = 0; i < MAX_REC_LEN; i++)
recBuf.insert(i, ' ');
recBuf.setLength(MAX_REC_LEN);
}
public static byte[] createRecord(String im, String nazw, String nr, String data) {
clearBuf();
recBuf.insert(IMIE_INDEX, im);
recBuf.insert(NAZW_INDEX, nazw);
recBuf.insert(NR_INDEX, nr);
recBuf.insert(DATA_INDEX, data);
recBuf.setLength(MAX_REC_LEN);
return recBuf.toString().getBytes();
}
public static String getImie(byte[] b) {
return new String(b, IMIE_INDEX, FIELD_LEN).trim();
}
public static String getNazwisko(byte[] b) {
return new String(b, NAZW_INDEX, FIELD_LEN).trim();
}
public static String getNr(byte[] b) {
return new String(b, NR_INDEX, FIELD_LEN).trim();
}
public static String getData(byte[] b) {
return new String(b, DATA_INDEX, FIELD_LEN).trim();
}
}
Ja nie mam żadnej opcji getID().
Opcja kasuj miałaby się znaleźć na liście 'przeglądanych' i kasować element, dla którego została wywołana.