Для проекта класса мы с группой работали над приложением, которое читает строки текста из текстового файла и может зашифровать его, расшифровать его (оба с помощью DES) и вычислить хеш MD5. Программа хорошо читает текст и шифрует его, записывая массив зашифрованных строк обратно в текстовый файл в том порядке, в котором они были прочитаны, строка за строкой со всеми необходимыми возвратами каретки.
Однако при расшифровке этих строк программа записывает открытый текст в файл одной строкой без пробелов и возврата каретки. Оба метода encrypt и decrypt используют один и тот же класс fileWrite, который использует буферизованную программу записи. Я добавил оператор System.out.println для целей отладки, чтобы распечатать содержимое массивов, поскольку они шифруются и дешифруются для проверки ошибок в хранилище, но я не могу их найти.
Даже когда я искусственно вставляю символы возврата каретки с помощью символа "\ n", текстовый файл после дешифрования занимает одну строку. Я не могу понять, почему один и тот же класс ведет себя по-разному в разное время. Код для записи массива в файл достаточно прост и просто обрабатывает элемент за элементом, и, вероятно, его не нужно включать, но в любом случае это так.
for(int i=0;i<s.length;i++){
bufferedWriter.write(s[i]);
}
Исходя из того, что я могу понять, проблема потенциально связана с тем, как java и блокнот обрабатывают новые строки по-разному. Когда он читает строки открытого текста из файла, я предполагаю, что он получает разрывы строк из текстового файла и печатает зашифрованный текст таким образом, но здесь java обозначает новую строку иначе, чем она была изначально в файле, Это приводит к проблеме пробелов, когда эти зашифрованные строки затем читаются и обрабатываются, но, опять же, я не совсем уверен, поэтому я здесь. Любая помощь будет оценена.