Используем RandomAccessFile

  • 12
  • Недоступна
В метод main приходят три параметра: 1) fileName - путь к файлу; 2) number - число, позиция в файле; 3) text - текст. Считать текст с файла начиная с позиции number, длинной такой же как и длинна переданного текста в третьем параметре. Если считанный текст такой же как и text, то записать в конец ф
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (66)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Arkadii36 уровень
3 октября, 20:15
Ошибся на попытке записать результат в конце с помощью writeBoolean()
Володимир Штаба38 уровень, Киев
15 сентября, 21:01
7 попыток сжег пытаясь задать стартовую позицию не через seek
randomAccessFile.read(bytes,0,args[2].getBytes().length);
Vitaly Khan37 уровень
30 января, 05:05
все решение - ровно 6 строк кода) мне не очень понятно, зачем нас вынудили использовать такую перегруженную форму метода
raf.read(bytes, 0, args[2].length());
вместо
raf.read(bytes);
Леонид39 уровень, Москва
25 апреля, 18:19
Да, зачем использовать в этой предыдущей зачах чистые read и write, если в этой же лекции рассказывают, что есть методы для каждого примитива. Наверно что-то нужно было понять) Я опять не понял. Или писать байты удобнее для компа, а остальные методы работаю медленно (сравнительно) и более ресурсоемкие ?
Alexey Polyakov34 уровень
30 октября, 12:18
А нет разницы.
public int read(byte b[]) throws IOException {
        return readBytes(b, 0, b.length);
    }
А размер того массива мы задаем как раз args[2].length(). Так что это чистый Валёк.
Макс41 уровень
26 января, 18:13
написал код быстро потом 20 минут подгонял под валидатор)))) ну все как обычно )
Дмитрий37 уровень
22 января, 09:16
Перед сравнением используйте конструктор
new String(byte[],"<Ваша кодировка, у меня UTF-8>")
И будет вам счастье)
Maxim Dudyshev33 уровень, Москва
30 мая, 20:27
У меня и без кодировки приняло, может доработали)
Олександр М27 уровень, Львов
13 января, 22:29
Валидатор пропускает только RandomAccessFile исключительно с конструктором String. С конструктором File - не хочет пропускать... Думаю тут таки бага.
George Matua30 уровень
20 января, 08:45
Однозначно - таки минус 2 попытки...
S3R3N1TY37 уровень, Санкт-Петербург
4 апреля, 20:38
А зачем тут File, если в аргументах строка передается. Смысл собирать еще File ?
Luk_d30 уровень
3 ноября, 20:34
а можно еще из String получить Path, а потом его в File переводить. Так еще больше действий вместо одного простого.
Сергей Мурин41 уровень
18 октября 2018, 01:18
Добавить в конец файла строку - это не значит, что нужно добавлять её с новой строки файла. Её нужно просто прилепить к концу текста. -2 попытки :(
Assanali27 уровень
18 августа, 13:10
прилепил вначале тупо в конце. открыл файл, посмотрел, подумал "наверно тупо что так криво прилеплено, надо с новой строки". добавил "\r\n" + output. отправил на валидацию, не прошло. спасибо за ваш комментарий.
Mark35 уровень, Санкт-Петербург
6 октября 2018, 08:22
try with resources валидатор не принимает, raf.close() - принимает
Артём31 уровень, Минск
5 декабря 2018, 22:13
приняло try-with-resources
George Matua30 уровень
20 января, 08:45
и без raf.close() и без try-with-resources принимает
Vitaly Khan37 уровень
30 января, 04:42
плохо, что принимает. косяк валидатора... мы же с файловой системой работаем. обязательно надо освобождать ресурсы.
QWE333TY32 уровень, Минск
3 октября 2018, 20:13
Не забывайте про то, что мы должны установить длину массива с байтами для строки, а не саму длину строки :)))
Сергей36 уровень, Москва
17 августа 2018, 16:08
Валя принимает такую строку для сравнения new String(bytes, "UTF-8");
12 декабря 2018, 04:44
в лоб new String(buffer) тоже принимает