Используем RandomAccessFile

  • 12
  • Недоступна
В метод main приходят три параметра: 1) fileName - путь к файлу; 2) number - число, позиция в файле; 3) text - текст. Считать текст с файла начиная с позиции number, длинной такой же как и длинна переданного текста в третьем параметре. Если считанный текст такой же как и text, то записать в конец ф
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (70)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Ярослав23 уровень
10 января, 12:16
Пять попыток из-за глупости. String s = new String(bytes); Вместо этой простой конструкции писал String s = Arrays.toString(bytes) Ну зачем блеать?
Vorlock29 уровень, Днепр
29 декабря 2019, 15:06
будьте внимательны что с чем сравниваете! у меня валидация не проходила до тех пор пока в equals не поменял местами сравниваемые значения.
Александр25 уровень
16 декабря 2019, 18:19
Валидатор похоже некорректный. Принимает, хотя не должен
String readed = new String(buff);
text.equals(readed)
Не принимает
String readed = new String(buff, 0, countReadedBytes);
text.equals(readed)
То есть для него "текст " эквивалентен "текст".
Роман35 уровень
22 ноября 2019, 06:43
Кто-нибудь почините валидатор для этой задачи. Вообще не понял, что он хочет. Такое ощущение, что все тесты написаны в одном файле. И он либо проходит, либо валится.
Arkadii41 уровень
3 октября 2019, 20:15
Ошибся на попытке записать результат в конце с помощью writeBoolean()
Володимир Штаба38 уровень, Киев
15 сентября 2019, 21:01
7 попыток сжег пытаясь задать стартовую позицию не через seek
randomAccessFile.read(bytes,0,args[2].getBytes().length);
Vitaly Khan40 уровень
30 января 2019, 05:05
все решение - ровно 6 строк кода) мне не очень понятно, зачем нас вынудили использовать такую перегруженную форму метода
raf.read(bytes, 0, args[2].length());
вместо
raf.read(bytes);
Леонид39 уровень, Москва
25 апреля 2019, 18:19
Да, зачем использовать в этой предыдущей зачах чистые read и write, если в этой же лекции рассказывают, что есть методы для каждого примитива. Наверно что-то нужно было понять) Я опять не понял. Или писать байты удобнее для компа, а остальные методы работаю медленно (сравнительно) и более ресурсоемкие ?
Alexey Polyakov35 уровень
30 октября 2019, 12:18
А нет разницы.
public int read(byte b[]) throws IOException {
        return readBytes(b, 0, b.length);
    }
А размер того массива мы задаем как раз args[2].length(). Так что это чистый Валёк.
Макс41 уровень
26 января 2019, 18:13
написал код быстро потом 20 минут подгонял под валидатор)))) ну все как обычно )
Дмитрий37 уровень
22 января 2019, 09:16
Перед сравнением используйте конструктор
new String(byte[],"<Ваша кодировка, у меня UTF-8>")
И будет вам счастье)
Maxim Dudyshev38 уровень, Гданьск
30 мая 2019, 20:27
У меня и без кодировки приняло, может доработали)
Олександр М27 уровень, Львов
13 января 2019, 22:29
Валидатор пропускает только RandomAccessFile исключительно с конструктором String. С конструктором File - не хочет пропускать... Думаю тут таки бага.
George Matua30 уровень
20 января 2019, 08:45
Однозначно - таки минус 2 попытки...
S3R3N1TY37 уровень, Санкт-Петербург
4 апреля 2019, 20:38
А зачем тут File, если в аргументах строка передается. Смысл собирать еще File ?
Luk_d35 уровень
3 ноября 2019, 20:34
а можно еще из String получить Path, а потом его в File переводить. Так еще больше действий вместо одного простого.