Лишние байты при считывании файла

Пишу программу для шифрования текста. В данном примере я шифрую слово. После шифрования сохраняю результат в txt. Когда я хочу расшифровать, то при чтении файла появляются непонятные байты, которые мешают при расшифровке. Кто-то может помочь решить проблему?

public String encryption(String textPath, String textOut){
    StringBuilder text = new StringBuilder();
    String textBinary = "";
    String result = "";
    String seq = lfsr.generationM("key.txt", 200000, 1000);


    try (BufferedReader reader = new BufferedReader(new FileReader(textPath, StandardCharsets.UTF_8))) {
        String line;
        while ((line = reader.readLine()) != null) {
            text.append(line);
        }
    } catch (IOException ex) {
        System.out.println(ex.getMessage());
    }

    byte[] textBytes = text.toString().getBytes(StandardCharsets.UTF_8);
    for (int i = 0; i < textBytes.length; i++) {
        textBinary+=String.format(
                "%08d", Integer.parseInt(Integer.toBinaryString(textBytes[i] & 0xFF)));
    }
    System.out.println("Binary representation of the text: " + textBinary);

    for (int i = 0; i < textBinary.length(); i++) {
        result+= (Character.getNumericValue(textBinary.charAt(i))^Character.getNumericValue(seq.charAt(i)));
    }
    String s = decoding(result);
    writeFile(textOut, s);

    return result;
}
    public String decoding (String textBinary){
    byte [] bytes = new byte[textBinary.length()/8];

    int k = 0;
    for (int i = 0; i < bytes.length; i ++) {
        String byteString = textBinary.substring(k, k + 8);
        int charCode = Integer.parseInt(byteString, 2);
        k+=8;
        bytes[i] = (byte)charCode;
    }

    writeFile("decode.txt", new String(bytes,StandardCharsets.UTF_8));

    return new String(bytes,StandardCharsets.UTF_8);
}

Шифрую слово hello [62, -48, 86, 66, -40] - перед загрузкой в файл получился такой массив байтов [62, -17, -65, -67, 86, 66, -17, -65, -67] - после считывания этого файла


Ответы (0 шт):