Я получаю OptionalDataException в следующей программе.почему эта ошибка приходит - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь зашифровать пароль перед сериализацией.
Я получаю OptionalDataException в следующем коде.Я читал много статей, таких как: «читать непереходную переменную раньше, EOF в программе, читать так же, как вы пишете в файл и т. Д.»1003 *

1 Ответ

0 голосов
/ 03 мая 2019

Вам нужно писать / читать одинаковые типы и в том же порядке. В настоящее время вы пишете char, поэтому вы также должны читать char.

Один пример (также читайте char):

private void readObject(ObjectInputStream ois) throws Exception{
    ois.defaultReadObject();
    StringBuilder passBuilder = new StringBuilder();
    try {
        while (true) {
            passBuilder.append(ois.readChar());
        }
    } catch (EOFException e) {
        // Reached end of stream.
    } finally {
        ois.close();
    }
    String pass = passBuilder.toString();
    password = pass.substring(3);
}

Второй пример (напишите Object):

private void writeObject(ObjectOutputStream oos) throws Exception{
    oos.defaultWriteObject();
    String pass= "HAS"+password;
    oos.writeObject(pass);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...