Мне нужно отправить Object
в качестве байтового массива другому методу, который сам вернет другой массив байтов из объекта.Ошибка при преобразовании класса в массив байтов и наоборот?
Это код, который я получил для вызова метода:
byte[] bytesArray;
Gato gatito = null;
Gato gato = new Gato();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = null;
try {
out = new ObjectOutputStream(bos);
out.writeObject(gato);
bytesArray = bos.toByteArray();
}
finally {
out.close();
bos.close();
}
System.out.println("Gatito es nulo? "+gatito==null);
byte[] huntedCat = cliente.method(bytesArray);
ByteArrayInputStream bis = new ByteArrayInputStream(huntedCat);
ObjectInput in = null;
try {
in = new ObjectInputStream(bis);
gatito = ((Gato)in.readObject());
} finally {
bis.close();
in.close();
}
System.out.println(gatito.nombre);
}
И так это метод, названный, который фактически выполняет те же операции вполне:
public byte[] method(byte[] something) {
byte[] bytesArray = null;
Gato gato = new Gato();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = null;
try {
out = new ObjectOutputStream(bos);
out.writeObject(gato);
bytesArray = bos.toByteArray();
out.close();
bos.close();
}
catch(IOException e) {
}
return bytesArray;
}
Я всегда получаю сообщение об ошибка, поэтому программа останавливается и getMessage
from exception говорит Gato
, который является классом, который я преобразовываю в массив байтов.
Не глотать свои исключения, обращаться с ними. –
Какая ошибка? использование try ... catch ... наконец. вы игнорируете исключения – Nishant