Объединение файлов

  • 10
  • Недоступна
Считать с консоли 2 имени файла. В начало первого файла записать содержимое второго файла так, чтобы получилось объединение файлов. Закрыть потоки.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (139)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Igor Zip18 уровень, Одесса
14 августа, 18:19
Почуму когда в первый файл записываю сначала второй массив, а потом первый массив - данные не перезаписываются? Я ж append true при создании потока записи не указывал!
Danil Guschin18 уровень
16 августа, 12:43
а вы пробовали? перезаписываются, просто валидатор и так принимает )
Александр Малых19 уровень, Коряжма
четверг, 11:14
не перезаписываются, append сохраняет то что было до открытия потока этого файла пока поток не закрыт в него записывается всё что вы передаете, пока не закроете поток :)
Руслан20 уровень, Усть-Орда
3 августа, 19:35
никакой самодеятельности, только так как описано. А то я скопировал в другой файл, что то там накрутил и валидатор ваще ни один пункт не принял. Третий раз переделываю, хотя все работает нормально.((((
Яков В.19 уровень
26 июля, 13:29
Задача вообще неочем... спасибо валидатору... 1. Почему нельзя использовать буфер??? 2. зачем писать содержимое файла в память, в массив байт, почему на диске сохранить нельзя, через временный файл Что-за специфические условия, чему вообще это должно научить??? ладно если файлы маленькие а если большие???
10 июля, 11:41
Те, кто решает задачу через BufferedWriter - не надо писать команду newLine();. Валидатор не принимает такое
Nubas19 уровень, Новосибирск
17 июня, 16:52
Совет не изобретайте велосипед (append и сложения массивов всякие) Для записи: 1. открыть поток на запись 2. запись массива2 //затирает то что было изначально в файле 3. запись массива1 //порядок по условию соблюдается 4. закрыть поток на запись //файл сохраняется P.S. Не забудьте закрыть потоки чтения до записи, иначе не сможет получить доступ к файлу.
Morgan22 уровень, Львов
29 июля, 13:44
То есть условия выполнени, но на деле в итоговом файле ничего не поменяется? Второй файл так и не появится в первом файле.
Тимур22 уровень, Екатеринбург
6 июня, 19:34
Валидатор дичь!
olegasics22 уровень, Москва
6 июня, 13:19
Возможно сделал не с использованием того, что сейчас учим, но решил через List, добавив сначала второй файл, затем второй в лист, и после этого записал его в первый файл
Антон20 уровень, Санкт-Петербург
2 августа, 09:24
Сделал так же, готовые решения с гитхаба устарели, а по советам из свежих комментариев все равно не проходили 4 и 5 пункты.
Vladislav22 уровень
2 июня, 09:57
Поясните пожалуйста следующий момент: при открытии потока на запись если указать параметр append равным true, то валидатор не пропускает ("сначала должно идти содержимое второго файла, потом первого"). Если append указать false, то валидатор принимает решение, но ведь тогда содержимое первого файла сотрет второй файл при записи. А в задании указано объединить файлы. Или я не правильно понимаю назначение параметра append ?
Dorian Goldmann23 уровень, Харьков
2 июня, 11:20
Тебе нужно текст файла1 сохранить, потом текст файла2 записать в файл1 и с помощью append дописать сохранённый текст из файла 1.
Serg22 уровень, Днепр
13 июня, 17:34
нетнет, насколько я понял нужно сохранить всю информацию 1 файла(например в массив байтов), потом открыть поток для записи первого файла, сохранить туда сначала 2 файл и потом массив(с данными 1 файла). Append не нужен, потому что его задача это сохранить ту информацию, которая была в файле до открытия потока. Без этого параметра можно записывать в файл кучу потоков и они не пропадут, пропадет только то, что было до открытия потока записи
Ivan26 уровень, Нижний Новгород
8 июля, 19:32
Наконец то до меня дошло!) Append:false/true влияет только на первую операцию после открытия потока записи. Далее же, пока поток не закрыт, запись будет происходить без затирки, не важно append:false или true.
Павел Меркулов21 уровень, Bangkok
понедельник, 15:53
ты не представляешь как помог)
Artem Yaremchuk26 уровень, Омск
26 мая, 10:03
Важен этот коммент от Bazi4ek22:
Очень важна последовательность действий !
 Если открыты потоки записи в файл и одновременно поток чтения из этого же файла, то в него можно только писать, но не читать, метод read() запускается, но безрезультатно !
- Открываем потоки для чтения.
- Сливаем оба файла в массивы.
- Закрываем оба потока.
- Затем только открываем поток для записи в файл.
а точнее это предложение:
Если открыты потоки записи в файл и одновременно поток чтения из этого же файла, то в него можно только писать, но не читать, метод read() запускается, но безрезультатно !
АртемGeek25 уровень, Москва
26 мая, 13:23
Спасибо! не мог понять почему не работает) Пока не закрыл input, проверку не проходило.
DenisKa19 уровень, Екатеринбург
22 мая, 15:20
Просто же можно всё из первого файла дописать во второй, а затем весь второй файл записать вместо первого. Но валик так не пропускает, хотя поставленная задача выполнена... :-\
Антон23 уровень, Санкт-Петербург
7 июня, 10:01
Ты портишь второй файл, если так сделать в рабочем проекте может быть нехорошо, ибо он может еще где-то использоваться
Андрей Кутиль23 уровень, Киев
19 июня, 19:50
Я так же само делал, нифига