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