По всей видимости плаваю в самых базовых понятиях.
Попробую хотя в кратце пояснить что пытаюсь сделать и поправьте пожалуйста места где я ошибаюсь, даже в формулировках по вашему мнению
1. Создал сканер для считывания пути и его записи во второй файл
2. В try создал потоки для считывания пути и для записи и плюс массив данных который как будто находиться в первом пути
3. Затем в цикле while проверяется наличие впринципе какого либо ввода и том же цикле проверяется по одному элементу из массива до момента пока в нем остались елементы
Цикл for
1. Cначала создается переменная i со значением 0 и проверяется является ли массив с этим количеством элементов (или на данном элементе) равным или меньшим его изначальной длинны
2. Изначально переменная i = 0 и по условиям задачи месторасположение нечетного элемента (первый элемент массива в этом случае) должено быть изменено на место четного
3. Сначала если i = 0 то записываю его вторым в массиве
В моем понимании сначала ставлю первый элемент вторым, потом второй ставлю на место первого тем что сравниваю текущий номер элемента с 0 оператором == и если тот возвращает true то записываю 0 элемент вторым.
Учитывая сколько я наваял текста буду рад любой помощи, хотя бы с пониманием языка потому что я если быть честным ощущаю что иногда ощутимо плаваю в понимании синтаксиса
package com.javarush.task.pro.task15.task1504;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Scanner;
/*
Перепутанные байты
*/
public class Solution {
public static void main(String[] args) {
//напишите тут ваш код
Scanner scanner = new Scanner(System.in);
String src = scanner.nextLine();
String dest = scanner.nextLine();
try (InputStream input = Files.newInputStream(Path.of(src)); OutputStream output = Files.newOutputStream(Path.of(dest))) {
byte[] buffer = new byte[50];
while (input.available() > 0) {
int real = input.read(buffer);
}
for (int i = 0; buffer[i] <= buffer.length; i++) {
if (buffer[i] == 0) {
output.write(buffer[i+1]);
}
else if (buffer[i % 2] == 0 ) {
output.write(buffer[i-1]);
}
else output.write(buffer[i+1]);
}
}
catch (IOException e) {
System.out.println("Unidentified path");
}
}
}