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

  • 10
  • Недоступна
Считать с консоли 2 имени файла. В начало первого файла записать содержимое второго файла так, чтобы получилось объединение файлов. Закрыть потоки.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (116)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
DenisKa18 уровень, Екатеринбург
позавчера, 15:20
Просто же можно всё из первого файла дописать во второй, а затем весь второй файл записать вместо первого. Но валик так не пропускает, хотя поставленная задача выполнена... :-\
Андрей18 уровень, Новосибирск
30 апреля, 07:50
Блин, написал через fileInputStream.readAllBytes(), а он,оказывается, появился только в java 9... :(
Tony G23 уровень, Самара
26 апреля, 18:39
Не мучайтесь с байтами, для символьных потоков есть reader и writer. Задача решается с помощью FileReader, FileWriter и CharArrayWriter в качестве буфера.
Пётр41 уровень, Москва
14 апреля, 17:01
при копировании из прошлого кода забыл убрать append = true при записи в файл, это вызывало неправильную работу)
8 апреля, 23:18
что то получилось) подсказка: byte[] arr = new byte[is1.available()]; is1.read(arr, 0 , arr.length); os.write(arr, 0, arr.length);
S20 уровень, Минск
22 марта, 16:52
Очередная тупая академическая задачка! Уберите срочно! Прочитал условия задачи: записать сначала содержимое второго в первый файл, а потом добавить содержимое первого. Сначала сделал красиво - создал потоки, все обернул в Buffered, записал второй, потом первый через с параметром append. Все было красиво, пока не запустил валидатор и не прочитал требования: Но нет, тут приходят гении из JR и ставят свои условия - писать через какие-то кривые байтовые массивы, копирование массивом, не создавать лишний поток. Короче создают проблему на ровном месте, приучая выполнять копирование файлов таким способом, за который будут бить по руками линейкой. В результате тот шаткий порядок в голове по пройденной теме снова превратился в кашу - как все-таки нужно читать\писать файлы - посимвольно, читать в массивы или использовать обертки?!
Junior19 уровень
8 мая, 14:22
Скажите,а если вы уже мастер,то зачем вам вообще JR?
эволюта23 уровень
13 мая, 13:19
Скажите, а с чего вы считаете что этот человек уже мастер?
Евгений20 уровень, Днепр
12 марта, 20:17
Блин, сделал по-человечески, с получением уникального имени временного файла в каталоге первого, переименованием первого во временный, записью в нужном порядке и удалением временного в finally, но нет, хранить все содержимое первого файла надо в памяти (нуачо, ее ж немеряно). С досады второй вариант отправил, даже не скомпилировав. Прошло, конечно, чему там не пройти.
Демин Андрей20 уровень
19 февраля, 16:35
сделал два рабочих кода первый через риадОллБайт - валидатор даже компилироватся отказался :( ок на второй через риад бафф и коунт - все позиции красные, а в идее и файлах все ок. ну раз третий мимо - костылим на трех байтовых масивах. и оп. валидатор наелся. пзд я вам скажу, нас учат городить огород :(
Евгений20 уровень, Днепр
12 марта, 20:21
Возможно, стоило оставить первое решение, заменив
inputStream.readAllBytes()
на
byte[] buffer = new byte[inputStream.available()];
inputStream.read(buffer);
S3R3N1TY33 уровень, Санкт-Петербург
4 февраля, 16:16
Три действия: 1. Читаем в буфер байты Файла1 2. Читаем в другой буфер байты Файла2 3. Открываем поток на запись в Файл1:
outputStream = new FileOutputStream(file1);
outputStream.write(buffer2);
outputStream.write(buffer1);
outputStream.close();
S20 уровень, Минск
22 марта, 16:43
а циклы чтения где??? И buffer1 будет же записан поверх второго?!!!
Bazi4ek22 уровень, Минск
6 января, 05:39
Очень важна последовательность действий ! Если открыты потоки записи в файл и одновременно поток чтения из этого же файла, то в него можно только писать, но не читать, метод read() запускается, но безрезультатно ! - Открываем потоки для чтения. - Сливаем оба файла в массивы. - Закрываем оба потока. - Затем только открываем поток для записи в файл.
Den Nonamed19 уровень
14 апреля, 09:10
Спасибо