public void wordsBeginningWithVowelSortedByFirstConsonantLetter(String resultFilePath)
            throws IOException{
        if(text == null) return;

        ArrayList<Word> words = text.toWordsList();
        for(int i = 0; i < words.size(); i++){
            if(!words.get(i).getLeter(0).isVowel()){
                words.remove(i--);
            }
        }

        Collections.sort(words, new Comparator<Word>() {
            @Override
            public int compare(Word w1, Word w2) {
                char firstConsonant1 = 0;
                char firstConsonant2 = 0;
                for(int i = 0; i < w1.getNumberOfLetters(); i++){
                    if(!w1.getLeter(i).isVowel()){
                        firstConsonant1 = w1.getLeter(i).getChar();
                        break;
                    }
                }
                for(int i = 0; i < w2.getNumberOfLetters(); i++){
                    if(!w2.getLeter(i).isVowel()){
                        firstConsonant2 = w2.getLeter(i).getChar();
                        break;
                    }
                }
                if(firstConsonant1 == firstConsonant2)
                    return w1.toString().toLowerCase().compareTo(w2.toString().toLowerCase());
                return Character.toString(firstConsonant1).toLowerCase().compareTo(
                        Character.toString(firstConsonant2).toLowerCase()
                );
            }
        });

        out = new BufferedWriter(new FileWriter(resultFilePath));
        for(Word word : words){
            out.write(word.toString() + " ");
            out.newLine();
        }
        out.flush();
    }