Шифровка

Задача:

Придумать механизм шифровки/дешифровки.

Программа запускается с одним из следующих наборов параметров:
-e fileName fileOutputName
-d fileName fileOutputName

где:
fileName — имя файла, который необходимо зашифровать/расшифровать.
fileOutputName — имя файла, куда необходимо записать результат шифрования/дешифрования.
-e — ключ указывает, что необходимо зашифровать данные.
-d — ключ указывает, что необходимо расшифровать данные.

Требования:

  • Считывать с консоли ничего не нужно.
  • Создай поток для чтения из файла, который приходит вторым параметром ([fileName]).
  • Создай поток для записи в файл, который приходит третьим параметром ([fileOutputName]).
  • В режиме «-e» программа должна зашифровать [fileName] и записать в [fileOutputName].
  • В режиме «-d» программа должна расшифровать [fileName] и записать в [fileOutputName].
  • Созданные для файлов потоки должны быть закрыты.

Решение:


import java.io.*;
public class Solution {
public static void main(String[] args) throws Exception {
switch(args[0]) {
case "-e":
FileOutputStream outputStream = new FileOutputStream(args[2]);
FileInputStream inputStream = new FileInputStream(args[1]);
while(inputStream.available() > 0) {
byte data = (byte) inputStream.read();
outputStream.write(data+1);
}
inputStream.close();
outputStream.close();
break;
case "-d":
FileOutputStream outputStream2 = new FileOutputStream(args[2]);
FileInputStream inputStream2 = new FileInputStream(args[1]);
while(inputStream2.available() > 0) {
byte ch = (byte)inputStream2.read();
outputStream2.write(ch-1);
}
inputStream2.close();
outputStream2.close();
break;
}}}