throws IOException {
short count = dis.readShort();
List<Field> fields = new ArrayList<Field>();
for (int i = 0; i < count; i++) {
Field curField = new Field();
short accessFlags = dis.readShort();
short nameIndex = dis.readShort();
short descIndex = dis.readShort();
String name = cpInfo.getUtf8String(nameIndex);
String descriptor = cpInfo.getUtf8String(descIndex);
curField.setName(name);
curField.setDatatype(descriptor);
curField.setQualifier(accessFlags);
short attrCount = dis.readShort();
for (int j = 0; j < attrCount; j++) {
readFieldAttributes(curField, dis, cpInfo);
}