public Record<String, String> readNextRecord() throws IOException {
		if(!isInit) {
			initialize();
		}
		
		if(currentOffset >= filePartition.getEnd()) {
			raf.close();
			return null;
		}
		
		String line = raf.readLine();
		if(line == null) {
			return null;
		}
		
		Record<String, String> record;
		
		if(keyDelimiter == null) {
			record = new Record<String, String>(filePartition.getFileName() 
					+ currentOffset, line);
		} else {
			String[] tokens = line.split(keyDelimiter);
			if(tokens.length != 2) {
				System.out.println("error! wrong input format");
			}
			record = new Record<String, String>(tokens[0], tokens[1]);
		}
		
		currentOffset += line.length();
		
		return record;
	}