Запись в существующий файл

  • 14
  • Недоступна
В метод main приходят три параметра: 1) fileName - путь к файлу; 2) number - число, позиция в файле; 3) text - текст. Записать text в файл fileName начиная с позиции number. Запись должна производиться поверх старых данных, содержащихся в файле. Если файл слишком короткий, то записать в конец файла.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (68)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Aleksandr 33 уровень
15 февраля, 12:10
Сначала сравниваете raf.length с позицией которая передается аргументом , затем записываете строку, к которой надо применить стандартный метод получения массива байтов.
Артур Прохоренко 25 уровень, Гомель
2 февраля, 16:31
Валидатор не пускает если для чтения длины файла не использовать .length() от RandomAccessFile. Сделал сначала через Files.getAllBytes.length() - вообще все красное, ни одно условие не прошло, хотя работало.
Лёхансан 30 уровень, Брест
10 декабря 2020, 20:58
Какие бы методы я не использовал - в файл записываются иероглифы, а не предлагаемый мной текст... Что я делаю не так?
Лёхансан 30 уровень, Брест
10 декабря 2020, 21:06
Поменял кодировку в файле на UTF8 и все заработало.
Андрей 41 уровень, Иркутск
7 декабря 2020, 14:31
Господа, подскажите, а как записать символы в Кириллице? Перепробовал все методы и способы записи, указывал все кодировки при getBytes() - все равно кодировка теряется, не хочет Кириллицу писать и все тут...
Mike Starman 39 уровень, Киев
30 ноября 2020, 19:01
Задача из серии "не надо мудрить!" Сделал решение в 4 строчки: 1. Создал RandomAccessFile из args[0] на чтение-запись. 2. Переставил курсор на минимальное из двух величин randomAccessFile.length() или args[1] (спасибо комментариям ниже) 3. Записал байты из args[2], как советовали ниже, методом write. 4. Закрыл файл. Никаких проверок входящих параметров, никаких try, никаких переменных для перекладывания значений из args[]. Просто и прямолинейно как в лоб шпалой - прошло с первого раза. Ну и throws исключений в сигнатуру метода добавил.
Vad 36 уровень Expert
8 сентября 2020, 20:54
Не принимало из-за того, что сделал комментарии(( Это раз. Требует метод write.. writeBytes(String s) не пропускает. Это два. Особенно понравился пункт задания: "Если файл слишком короткий, то записать в конец файла." Понимай, как хочешь. То ли х@й длинный, то ли майка короткая. ....
Денис Technical support
17 августа 2020, 10:14
Мои грабли, из первого аргумента я делал File, который передавал в RandomAccessFile, так вот, последние два пункта не принимало пока я сравнивал file.length() и number. Но все приняло для сравнения randomAccessFile.length(). В чем сакральный смысл именно этого услвоия я так и не понял признаться :)
ZaGa Music 25 уровень, Москва
7 февраля, 07:25
Я тоже создал File и через его длину сравнивал с number,не проходило по последним 2 пунткам,думал я же делаю все правильно почему не так,зашел в коменты увидел твои грабли)) и решил через randomAccessFile.length().
Serge 36 уровень, Ставрополь
3 августа 2020, 17:07
5281
Sergey Bezverkhniy 28 уровень, Кишинев-Ямбург
18 июня 2020, 18:12
без try, with, else и if -> raf.seek(Math.min(raf.length(), number));
Роман 27 уровень, Санкт-Петербург
10 мая 2020, 10:10
не решайте через Path