Валидатор не принимает по трем условиям, хотя потоки закрыты, используются методы newInputStream и newOutputStream класса Files, ну и если запустить отладку то цикл как раз меняет местами 1 на 2, 3 на 4 итд.