Логика моего кода:
1) Если байт real по порядку нечетный, записываем его из файла1 в переменную temp
2) Если байт real четный, записываем в файл2 сначала temp, потом real (тем самым, меняя последовательность согласно условию)
3) Если байт real нечетный и последний в файле1, просто записываем его в файл2.
Но валидацию не прохожу:
"Программа должна переписывать байты из одного файла в другой согласно условию."
Подскажите пожалуйста, где слабое место в моем коде?
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) {
//напишите тут ваш код
int i = 3;
int temp = 0;
try (Scanner sc = new Scanner(System.in);
InputStream in = Files.newInputStream(Paths.get(sc.nextLine()));
OutputStream out = Files.newOutputStream(Paths.get(sc.nextLine()))) {
while (in.available() > 0) {
int real = in.read();
if (i % 2 != 0 && in.available() > 0) {
temp = real;
i++;}
else if (i % 2 == 0) {
out.write(temp);
out.write(real);
i++;}
else if (i % 2 != 0 && in.available() == 0) {
out.write(real);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/*
Перепутанные байты
Напиши программу, которая считывает с консоли путь к файлу1 и путь к файлу2.
Далее все байты из файла1 записывает в файл2, но при этом меняет их местами по такому принципу: первый со вторым, третий с четвертым, и т.д.
Если последний байт в файле1 нечетный, то пишем его в файл2 как есть.
Для чтения и записи файлов используй методы newInputStream и newOutputStream класса Files.
Requirements:
1. Программа должна считать с консоли пути к файлам.
2. Программа должна переписывать байты из одного файла в другой согласно условию.
3. Для чтения и записи файлов должны быть использованы методы newInputStream и newOutputStream класса Files.
4. Потоки для чтения и записи должны быть закрыты.
5. Не используй следующие классы File, FileInputStream, FileOutputStream, FileReader, FileWriter пакета java.io.*/