Мне кажется, у вас следующая структура папок:
Main.class
Main.java
test dir
|-- testfile.txt
|-- testfile2.txt
Вы запускаете код из каталога, содержащего Main.class
, Main.java
и test dir
.Ваш код затем перечисляет файлы в каталоге test dir
, находя два текстовых файла, которые он содержит, но затем пытается открыть их из текущего каталога .Это родительский каталог, и, конечно, это не то место, где находятся эти файлы.Они находятся в подкаталоге test dir
.Таким образом, следует ожидать FileNotFoundException
: вы пытаетесь открыть файл в неправильном каталоге.
Если сбой FileReader обнаружен во втором из двух файлов, существует ли файл?testfile.txt
также в родительском каталоге?Возможно, ваш код впервые открывал этот файл в цикле, а не в том, что вы в test dir
считали.
Чтобы открыть файлы в подкаталоге test dir
, замените строку
fileReader = new FileReader(files[f1]);
с
fileReader = new FileReader(new File(dir, files[f1]));