public String getValue(String key) throws RuntimeException{
        if (!keyPointers.containsKey(key)){
            System.out.println("No such key: " + key);
            return "3";
            //throw new NoSuchElementException();
        }
        Long position = keyPointers.get(key);
        String value = "";
        try {
            BufferedReader in = new BufferedReader(new FileReader(dataStorage.getAbsoluteFile()));
            in.skip(position);
            try {
                int c;
                while((c = in.read()) != -1 && (char)c != ';'){
                    value += String.valueOf((char)c);
                }
            } finally {
                in.close();
            }
        } catch(IOException e) {
            throw new RuntimeException(e);
        }

        return value;
    }