Уже задавал этот вопрос, но ответа там не дождусь, вестимо.
Данная задача решается либо как есть, либо можно раскомментировать вторую часть и убрать из первой "или". И так и так файл шифруется и дешифруется. Я даже пробовал шифровать исходный файл, вместе с тем, в который копирую. Ни в каком варианте не принимает валик. Пробовал шифровать "Цезарем". Так же безуспешно. Как скормить решение валику?
package com.javarush.task.task18.task1826;
/*
Шифровка
Придумать механизм шифровки/дешифровки.
Программа запускается с одним из следующих наборов параметров:
-e fileName fileOutputName
-d fileName fileOutputName
где:
fileName - имя файла, который необходимо зашифровать/расшифровать.
fileOutputName - имя файла, куда необходимо записать результат шифрования/дешифрования.
-e - ключ указывает, что необходимо зашифровать данные.
-d - ключ указывает, что необходимо расшифровать данные.
Требования:
1. Считывать с консоли ничего не нужно.
2. Создай поток для чтения из файла, который приходит вторым параметром ([fileName]).
3. Создай поток для записи в файл, который приходит третьим параметром ([fileOutputName]).
4. В режиме "-e" программа должна зашифровать [fileName] и записать в [fileOutputName].
5. В режиме "-d" программа должна расшифровать [fileName] и записать в [fileOutputName].
6. Созданные для файлов потоки должны быть закрыты.
*/
import java.io.*;
//-e C:\JVR\in.txt C:\JVR\out.txt
//-d C:\JVR\out.txt C:\JVR\res.txt
public class Solution {
public static void main(String[] args) {
if (args.length == 3 && args[0].equals("-e") || args[0].equals("-d"))
try {
FileInputStream fileName = new FileInputStream(new File(args[1]));
FileOutputStream fileOutputName = new FileOutputStream(new File(args[2]));
while (fileName.available() > 0) {
fileOutputName.write(~fileName.read());
}
fileName.close();
fileOutputName.close();
}catch (FileNotFoundException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
/* if (args.length == 3 && args[0].equals("-d")){
try {
FileInputStream fileName = new FileInputStream(new File(args[1]));
FileOutputStream fileOutputName = new FileOutputStream(new File(args[2]));
while (fileName.available() > 0) {
fileOutputName.write(~fileName.read());
}
fileName.close();
fileOutputName.close();
}catch (FileNotFoundException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}*/
}
}