привет и в лицо тебе задачки которые не пригодятся никогда в жизни скорее всего.
ну и валидатор видит большую разницу в writeBytes и write(String.getBytes()) ;
Мда друзья, читайте условие. Написано "Считать текст с файла начиная с позиции number, длиной такой же как и длина переданного текста в третьем параметре". А не просто считать текст от number и до конца. Много попыток из-за этого потратил.
Как пример для таких вводных - в файле "acdefg", number=2, text="de" должно выдать true.
Прочитала условия и все показалось просто, а среднее количество попыток 2.97, как у хардовой задачи... Явный подвох... В итоге сама сделала с третьей попытки 🤦♀️, валидатору надо только
randomAccessFile.write(text.getBytes());
и не принимал ни по оlному!!! пункту из-за этого, пока я это не поправила...
В первой задаче валидатор не пропустил только из-за того что длину файла я выявил не через randomAccessFile.length()
а через
FileInputStream inputStream = new FileInputStream(args[0]);
inputStream.available()
Казалось бы да, первый варик корректнее с точки чистоты кода, но оба они рабочие и оба выдают один и тот же результат. Я думал валидатор оценивает результаты, а не в принципе как код написан.
Это наталкивает на мысль о том, что вариативность заметно уменьшается. Теперь ты обязан писать только так как хочет валик, при этом ты должен угадать КАК ИМЕННО он хочет. А все твои 100500 вариантов решения задачи идут ...
создавать лишний стрим, только чтобы узнать длину файла, когда ее можно узнать из уже существующего объекта - ИМХО это не только не корректно с точки зрения чистоты кода, а это лишний расход ресурсов, за что на нормальном месте могут оторвать руки
больше раздражает, что валидатор не принимает, когда ты используешь другие методы, например writeBytes(String s) вместо write("text".getBytes())
или когда читаешь как они просят через read() в который закидываешь предварительно созданный массив такого же размера как текст, который надо считать, но нет ему надо явно написать что от 0 до размера массива.. Вот такие ситуации конечно раздражают
ну не скажите, вроде в этих заданиях сильно валидатор не придирался. Хотя я сам попался на том, что использовал raf.read(buffer); вместо raf.read(buffer, 0, text.length());
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ