2014-02-20 8 views
4

나는 입력 스트림을 수신하는 방법이 있는데, 먼저 데이터를 해독해야한다. 그 데이터를 직렬화한다. 하지만 내 데이터가 직렬화되지 않습니다. 내 파일은 해시 파일입니다. 도와주세요. 내 코드는 -자바에서 바이트 배열을 직렬화 할 수 있습니까?

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(); 

가}

내가 바이트 배열을 직렬화 수 있습니까? 귀하의 질문에

+0

데이터가 직렬화되지 않은 이유는 무엇입니까? 이 코드는 무엇을합니까? –

+0

입력 스트림에 파일을 수신하고 있으며 암호화되어 있습니다. 해독 한 다음 데이터를 직렬화하고 파일에 기록해야합니다. @kevin – ROCKY

+0

물론 JVM이 바이트 배열의 객체를 생성하고 객체를 직렬화 할 수 있기 때문에 byte []를 직렬화 할 수 있습니다. – swapnil7

답변

2

대답은 :

나는 바이트 배열을 직렬화 수 있습니까?

실제로 "그렇게 할 필요가 없습니다." 코드는 분명히 바이트를 디스크에 쓴 다음 디스크에서 바이트를 읽습니다. 모든 것이 투명하고 꽤 잘하고 있습니다.

코드에서 오류가 발생합니까?

+0

다음 예외가 발생합니다. -java.io.StreamCorruptedException : 스트림 헤더가 유효하지 않습니다. 0D0A2020 at java.io.ObjectInputStream.readStreamHeader (ObjectInputStream.java:782) at java.io.ObjectInputStream. (ObjectInputStream.java:279) – ROCKY

+0

미안하지만, 당신이'ObjectInputStream'을 사용하고 있다는 것을 눈치 채지 못했습니다. 난 당신이 그것을 드롭하고'FileInputStream' 만 사용하려고하기 때문에 바이트 배열을 읽고 쓰고 처리해야하기 때문에 사용하는 것이 좋습니다. –

관련 문제