Перепутанные байты

  • 16
  • Недоступна
Напиши программу, которая считывает с консоли путь к файлу1 и путь к файлу2. Далее все байты из файла1 записывает в файл2, но при этом меняет их местами по такому принципу: первый со вторым, третий с четвертым, и т.д. Если последний байт в файле1 нечетный, то пишем его в файл2 как есть. Для чтения и
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (221)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Алексей
Уровень 24
3 мая, 12:06
если в файле1 русские буквы, то после всех манипуляций, в файле2 вместо них отображаются кракозябры. как этот момент подправить?
IrinaVyu
Уровень 17
22 мая, 20:12
если ты в курсе как вывести эти кракозябры в идее в консоли, буду очень признательна. интересно как, а то не выходит
Евгений
Уровень 16
23 мая, 09:31
Попробуйте изменить кодировку для отображаемого текста или воспользоваться методом readUTF();
Eugene Lavrinenko
Уровень 9
12 апреля, 10:10
Меня запутала фраза "Для чтения и записи файлов используй методы newInputStream и newOutputStream класса Files". Разобрался благодаря комментам и докам оракла.
Fanis
Уровень 23
9 апреля, 15:27
по факту чтобы решить задачу нужно дочитать до конца весь уровень и изучить Path и File, для тех кому не хочется вот кусок кода ниже, и да получается в f1 считываем в f2 записываем, я лично просто создал два массива и второй массив записал в f2
try (Scanner scPath = new Scanner(System.in);
     InputStream f1 = Files.newInputStream(Path.of(scPath.nextLine()));
     OutputStream f2 = Files.newOutputStream(Path.of(scPath.nextLine())))
{
    byte [] a=f1.readAllBytes(),result= new byte[a.length];
rogueGodname
Уровень 28
2 апреля, 18:01
Не горите. Прочитайте до конца лекции у данного уровня Менять байты нужны у массива: ячейки 0 на 1, 2 на 3 и т.д. (в условиях написано по другому) Задачу решил, все условия по ТЗ выполнил, но компилятор не принимал мой код, как бы Я не пытался по-разному выполнить задачу. Пришлось смотреть верное решение, где было написано тоже, что и у Меня. Крч хорошая задача. Посидел долго
FreSS
Уровень 20
26 марта, 11:44
Эммм, а то что класс Files только через несколько лекций объяснят не смущает создателей курса ? Я так много был наслышан о джава-раше, но чем дальше, тем больше я разочаровываюсь.... Из плюсов пока вижу только решение задач в IDE, все остальное тянет на бесплатный курс, ибо один фиг после каждой лекции приходится лезть в ютуб.
23 марта, 19:36
Затык был с неиспользованием FileInputStream. Пришлось подглядеть. Могли бы сначала объяснить классы Path и Files.
22 марта, 00:42
Как вариант, можно попробовать использовать BufferedReader (дефолтный размер буфера - 8192 байта) В тестах на 2.6 Мегабайтной версии "Войны и мира" отработал секунды за три, пока реализация на обычном InputReader отработала секунд за 10. Можно играться с кастомным размером буфера инициацией через.BufferedInputStream(InputStream inputStream, int size) и пытаться скармливать действительно крупные файлы типа видео
kromeshnikov
Уровень 19
11 марта, 19:35
Всем привет. Объясните пожалуйста, в каком месте кода правильного ответа выполняется "Потоки для чтения и записи должны быть закрыты."?
Dmitrii Manukhin
Уровень 27
16 марта, 22:28
тебе нужно для этого использовать try-with-resources, который на предыдущей лекции изучили. То есть сначала в его параметрах указываешь открытие потоков Scanner, newInputStream, newOutputStream и благодаря тому, что ты их так откроешь, у тебя они закроются автоматически в блоке finally (этот кот тебе даже писать не надо будет, он автоматически пропишется)
Dmitry
Уровень 22
4 марта, 12:02
Решил таким образом
byte[] input_data = input.readAllBytes();
for (int i = 0; i < input_data.length / 2; i++) {
    byte temp = input_data[2 * i];
    input_data[2 * i] = input_data[2 * i + 1];
    input_data[2 * i + 1] = temp;
}
output.write(input_data);
Finist
Уровень 20
3 марта, 12:36
Задача хорошая, по сути итог всего изучения уровня)Давайть бы ее в конце) И так же обязательно обновляйтесь до 19 jdk , а то на 18 с потоками постоянно ошибки непонятные вылезают, при создании обьекта через Path и прочее