private void processIndexBytes(byte[] data)
			throws UnsupportedEncodingException {
		int currentIndex = 0, dataIndex = 0, dataSize;
		byte[] wordBytes, dataOffsetBytes, dataSizeBytes;

		while (currentIndex < data.length) {
			if (data[currentIndex] == Constant.INDEX_FILE_SPLIT_BYTE) {
				if (currentIndex + 8 < data.length) {
					dataSize = currentIndex - dataIndex;
					wordBytes = new byte[dataSize];

					for (int i = 0; i < dataSize; i++) {
						wordBytes[i] = data[i + dataIndex];
					}

					dataOffsetBytes = new byte[4];
					dataSizeBytes = new byte[4];

					for (int i = 1; i < 4; i++) {
						dataOffsetBytes[i] = data[currentIndex + i + 1];
						dataSizeBytes[i] = data[currentIndex + i + 5];
					}

					dataList.add(new StarDictWord(new String(wordBytes,
							encoding), ByteBuffer.wrap(dataOffsetBytes)
							.getInt(), ByteBuffer.wrap(dataSizeBytes).getInt()));
				}

				currentIndex += 8;
				dataIndex = currentIndex + 1;
			}

			currentIndex += 1;
		}
	}