Результат на выходе тот, что нужен.
George Matua
30 уровень
Почему валидатор не пропускает?
Решен
Комментарии (21)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Pavlo PlynkoJava-разработчик в CodeGymExpert
18 декабря 2017, 13:53
А что это в 16-й строке?
0
Сергеев ВикторMaster
16 декабря 2017, 19:07
соберите:
0
George Matua
16 декабря 2017, 20:44
Что не так? Для Unix - Mac - вообще не имеет значения.. Или я не о том?
Или, видимо, потому что Kings.Leon получается главный файл вместо - Kings.Leon.Part.2
0
George Matua
16 декабря 2017, 20:54
Исправил, но что-то не помогло:
А особенно меня вдохновляет эта ошибка: "Созданные для файлов потоки должны быть закрыты."
0
XVVZ
16 декабря 2017, 20:56
тут имелось ввиду что
этот код не отловит полное название
рекомендую воспользоваться методом класса String
0
George Matua
16 декабря 2017, 21:08
А что с этим кодом не так?
0
Сергеев ВикторMaster
16 декабря 2017, 21:26
запускайте свой код, если не понимаете, что не работает. Тестируйте и прочее.
В те данные, что я дал я дописал C:\\ т.к. пользуюсь win, если у вас другая ОС можете поменять обратно, суть не в этом.
Собранный файл должен называться "kings...avi".
0
George Matua
17 декабря 2017, 19:39
Ну да к и получается
kings...avi
kings...avi.part1
kings...avi.part144
kings...avi.part17
kings...avi.part22
kings...avi.part3
kings...avi.part77
Про C:\\ мне понятно конечно же. Мне не понятно, почему валидатор не пропускат и пишет, что потоки не закрыты, когда они явно закрыты.
0
George Matua
17 декабря 2017, 19:45
//Создай поток для записи в файл без суффикса [.partN] в папке, где находятся все считанные файлы.
//Чтение и запись должны происходить с использованием буфера.
//В новый файл перепиши все байты из файлов-частей *.partN. Файлы переписывать нужно не в порядке добавления, а от первой части к последней.
//Созданные для файлов потоки должны быть закрыты.
0
Сергеев ВикторMaster
17 декабря 2017, 19:58
вы код запустили в этими данными, или так в голове его запустили?
Создайте все эти файлы в указанных папках, запишите в них тестовые данные, запустите свой код на этих файлах и проверьте результат.
0
George Matua
17 декабря 2017, 22:22
Да - у меня в голове специально новая разработанная JAVA машина - на лету могу компилировать без компьютера. :)
Создаю файлы в терминале, заполняю в терминале и запускаю программу. Все делаю в идее.
Еще раз два раза сделал:
получается файл с именем
Содержание:
PART1
three
PART17
PART22
Seventy Seven
PART144
![]()

0
Сергеев ВикторMaster
17 декабря 2017, 23:36
да поспешил, не посмотрел обновленные код
0
Andrew Lan
18 декабря 2017, 10:45
Попробуйте обработать исключения при чтении-записи.
0
George Matua
18 декабря 2017, 16:21
Так?
Не помогает:(
0
Andrew Lan
18 декабря 2017, 18:14
Нет, примерно так:
Предположим, что какое-то имя файла (или несколько имен) введено неправильно, т.е. нет такого файла. При создании потока на чтение возникнет исключение, код аварийно завершает свою работу, поток на запись при этом останется не закрытым. Приведенный выше пример кода устраняет эту ситуацию. Думаю, валидатор проверяет не только работу кода в "штатном" режиме, но и некоторые пограничные, "аварийные" ситуации
0
George Matua
20 декабря 2017, 19:45
Не помогает... Показывает все те же 4 ошибки...
0
Andrew Lan
21 декабря 2017, 19:07
1.Не надо делить имя файла на путь и на имя! Не используйте отдельную переменную под путь к файлу:
String folder = "/Users/matua/Documents/";
Валидатор подставляет свои(!) имена файлов, в результате получается абракадабра с именами файлов - ваш путь + имя файла от валидатора со своим путем!
Вводите имена исходных файлов с полным путем или задайте путь по умолчанию (но лучше не заморачиваться и сразу с путем).
Соответственно нужно изменить остальной код, где у вас используется folder.
2. Совсем не обязательно при каждой итерации цикла вычислять имя результирующего файла на запись. Достаточно сделать это один раз вне цикла.
3. В первом цикле можно задать условие таким образом:
Тогда отпадет необходимость анализировать ввод на "end" два раза.
0
George Matua
21 декабря 2017, 22:28
О хвала вам, Andrew!!!! Ура Ура Ура!
А можете подсказать тут https://javarush.com/help/1862 ?:)
0
Roman Pryshchepa Java Developer Expert
22 декабря 2017, 07:58
Тебе об этой ошибке (String folder = "/Users/matua/Documents/";) написали еще в понедельник, 14:53 (смотри самый верхний коммент.
0
George Matua
23 декабря 2017, 02:35
Роман, меня глючит или вас? Я не вижу комментов в 14:53 в понедельник :(
0
Roman Pryshchepa Java Developer Expert
26 декабря 2017, 07:54
Самый верхний коммент от "Моряк Папай", сейчас понедельник сменился на число - 18 декабря, 14:53
0