public char[] read(int index, int count) throws Exception {
		char[] returnValue;
		
		//Prevent overflow
		if(oft.getCurrentPosition(index) + count > oft.getLength(index))
			returnValue = new char[oft.getLength(index) - oft.getCurrentPosition(index)];
		else
			returnValue = new char[count];
		int counter = 0;

		while(counter < count) {
			if(oft.getCurrentPosition(index) >= oft.getLength(index)) {
				//end of file reached
				break;
			}
			
			if(oft.shouldReadNextBlock(index)) { //We've reached the beginning of the next block
				//writer.write("Moving to the next block");
				oft.readNextBlockToBuffer(index);
			}
			
			returnValue[counter] = oft.getChar(index);
			oft.setCurrentPosition(index, oft.getCurrentPosition(index) + 1); //increment current position
			counter++;
		}
		if(counter == 0)
			return returnValue;
		writer.write(returnValue);
		writer.newLine();
		return returnValue;
	}