Задача:
Придумать механизм шифровки/дешифровки.
Программа запускается с одним из следующих наборов параметров:
-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;
}}}