나는 입력 스트림을 수신하는 방법이 있는데, 먼저 데이터를 해독해야한다. 그 데이터를 직렬화한다. 하지만 내 데이터가 직렬화되지 않습니다. 내 파일은 해시 파일입니다. 도와주세요. 내 코드는 -자바에서 바이트 배열을 직렬화 할 수 있습니까?
private byte[] getSerializeEncryptedBytes(InputStream inputStream,String password)
throws Exception {
byte[] fileBytes = getByteArrayFromInputStream(inputStream);
fileBytes = AESEncrytion.getDecryptedData(fileBytes, password);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(fileBytes);
ObjectInputStream objectInputStream = objectInputStream = new
ObjectInputStream(byteArrayInputStream);
Object dataObject = objectInputStream.readObject();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = new ObjectOutputStream(bos);
out.writeObject(fileBytes);
out.flush();
byte[] serializeByte = bos.toByteArray();
out.close();
Util.writeFileNewWay(new File("soapSerialized.txt"), serializeByte);
이 내 두 번째 방법입니다 -
public byte[] getByteArrayFromInputStream(InputStream inputStream) throws
IOException {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int nRead;
byte[] data = new byte[16384];
while ((nRead = inputStream.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, nRead);
}
buffer.flush();
return buffer.toByteArray();
가}
내가 바이트 배열을 직렬화 수 있습니까? 귀하의 질문에
데이터가 직렬화되지 않은 이유는 무엇입니까? 이 코드는 무엇을합니까? –
입력 스트림에 파일을 수신하고 있으며 암호화되어 있습니다. 해독 한 다음 데이터를 직렬화하고 파일에 기록해야합니다. @kevin – ROCKY
물론 JVM이 바이트 배열의 객체를 생성하고 객체를 직렬화 할 수 있기 때문에 byte []를 직렬화 할 수 있습니다. – swapnil7