Я пытаюсь записать массив байтов в файл, а затем прочитать его снова. Проблема в том, что массив байтов, который я читаю, отличается от того, что я написал. Выход ниже код:Различные байты, из которых я написал
[B @ 21a06946 (Original массив написан)
[B @ 2fc14f68 (байтовый массив чтения)
byte[] encryptedKey = rsaCipher.encrypt(AESKey, publicKeyPathName, transformation, encoding);
System.out.println(encryptedKey);
List<byte[]> list = new ArrayList<byte[]>();
list.add(encryptedKey);
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("encryptedKey"));
out.writeObject(list);
out.close();
ObjectInputStream in = new ObjectInputStream(new FileInputStream("encryptedKey"));
List<byte[]> byteList = (List<byte[]>) in.readObject();
in.close();
byte[] encryptedKey2 = byteList.get(0);
System.out.println(encryptedKey2);
Экземпляр другой, но вы проверили содержание? – Tunaki
Это не то, как вы проверяете равенство массива, используйте Arrays.equals (byte [] 1, byte [] 2) вместо –
Когда вы видите строку типа '[B @ ...', вы должны заметить, что это ссылка на переменную а не его содержание. '[' обозначает массив, 'B' для' byte' и '@ ...' для" at ... ". –