Как понимаю что-то криво написано, но не очень понимаю что именно. Сам код то что я хочу выполняет
Параметры следующие: -e "D:\in.txt" "D:\out.txt"
package com.javarush.task.task18.task1826;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
/*
Шифровка
*/
public class Solution {
public static void main(String[] args) {
BufferedReader reader = null;
BufferedWriter writer = null;
try {
reader = Files.newBufferedReader(Paths.get(args[1]));
writer = Files.newBufferedWriter(Paths.get(args[2]));
ArrayList<String> inText = new ArrayList<>();
ArrayList<String> outText = new ArrayList<>();
while (reader.ready()) inText.add(reader.readLine());
if (args[0].equals("-e")) {
outText = Crypto.encrypt(inText);
} else if (args[0].equals("-d")) {
outText = Crypto.decrypt(inText);
}
for (String s : outText) {
writer.write(s);
}
reader.close();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static class Crypto {
private static final char key = 'q';
private static ArrayList<String> result;
public static ArrayList<String> encrypt(ArrayList<String> list){
result = new ArrayList<>();
list.forEach(el -> {
char[] arr = el.toCharArray();
String newWord = "";
for (int i = 0; i < arr.length; i++) {
newWord = newWord.concat(Character.toString((char) (arr[i] + key)));
}
result.add(newWord);
});
return result;
}
public static ArrayList<String> decrypt(ArrayList<String> list){
result = new ArrayList<>();
list.forEach(el -> {
char[] arr = el.toCharArray();
String newWord = "";
for (int i = 0; i < arr.length; i++) {
newWord = newWord.concat(Character.toString((char) (arr[i] - key)));
}
result.add(newWord);
});
return result;
}
}
}