String fileName="words.txt"; //words.txt file contains 25,000 words
String word;
try {
FileReader fileReader=new FileReader(fileName);
BufferedReader bufferReader;
ArrayList<String> arrBag;
int count;
bufferReader=new BufferedReader(fileReader);
for (int i=1;i<=maxWordLength;i++) //maxWordLength is 22
{
arrBag = new ArrayList<String> (); // arrBag contains all words with same length and then store to hash map.
count=0;
bufferReader.mark(0);
while((word=bufferReader.readLine())!=null)
{
if (word.length()==i)
{
arrBag.add(word);
count++;
}
}
System.out.println("HashMap key : "+i+" has bag count : "+count);
mapBagOfTasks.put(Integer.toString(i), arrBag); //mapBagOfTasks is HashMap where key is length of word and value is ArrayList of words with same length.
bufferReader.reset();
}
if (fileReader!=null)
{
fileReader.close();
}
}
catch (FileNotFoundException e) {
System.out.println("Input file not found");
e.printStackTrace();
}
catch (IOException e) {
System.out.println("Error while reading File '"+fileName+"'");
e.printStackTrace();
}
У меня есть файл "words.txt", который содержит 25 000 слов.Я хочу сохранить все слова одинаковой длины в ArrayList, а затем сохранить его в Hash map в качестве ключа: длина слова и значения - это массив List.
Проблема, с которой я столкнулся, заключается в том, что моя программа прочитала файл в первый разно не читает тот же файл снова.Я попытался использовать функции mark () и reset (), но снова столкнулся с той же проблемой.Вы можете увидеть вывод для обоснований.Как я могу решить эту проблему?
Мой вывод программы: максимальная длина слова в файле: 22 * 1007 * Ключ HashMap: 1 имеет количество сумок: 26 // (означает, что найдено 26 слов издлина 1)
ключ HashMap: 2 имеет количество сумок: 0
ключ HashMap: 3 имеет количество сумок: 0
ключ HashMap: 4 имеет количество сумок: 0
ключ HashMap: 5 имеет количество сумок:0
Ключ HashMap: 6 имеет количество сумок: 0
Ключ HashMap: 7 имеет количество сумок: 0
Ключ HashMap: 8 имеет количество сумок: 0
Ключ HashMap: 9 имеет количество сумок: 0
ключ HashMap: 10 имеет количество сумок: 0
ключ HashMap: 11 имеет количество сумок: 0
ключ HashMap: 12 имеет количество сумок: 0
ключ HashMap: 13 имеет количество сумок: 0
Ключ HashMap: 14 имеет количество сумок: 0
Ключ HashMap: 15 имеет количество сумок: 0
Ключ HashMap: 16 имеет количество сумок: 0
Ключ HashMap: 17 имеет количество сумок: 0
Ключ HashMap: 18 имеет количество сумок: 0
ключ HashMap: 19 имеет количество сумок: 0
ключ HashMap: 20 имеет количество сумок: 0
ключ HashMap: 21 имеет количество сумок: 0
Ключ HashMap: 22 имеет количество сумок: 0