2010-01-26 2 views
1

ObjectOutputStream을 사용하여 Swing 응용 프로그램을 사용하여 대형 객체 (가능하면 Map)를 서버에 보내고 있습니다. 파일 업로드시 전송 된 백분율 등을 모니터링 할 수있는 방법이 있습니까?Java에서 ObjectOutputStream 모니터링

// Serialize to a byte array 
ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
out = new ObjectOutputStream(bos); 
out.writeObject(object); 
out.close(); 

// Get the bytes of the serialized object 
byte[] buf = bos.toByteArray(); 

그런 다음 한 번에 서버에 하나 개의 세그먼트를 바이트를 보내

+0

OutputStreams 또는 채널을 사용하여 서버에 연결하고 있습니까? –

+0

출력 스트림을 사용하여 서버에 연결합니다. – Azlam

답변

1

이 (불완전, 신용 http://www.exampledepot.com/egs/java.io/SerializeObj.html)처럼, 바이트 배열로 객체를 직렬화 할 수있다. 이렇게하면 전체 합계 중 몇 퍼센트가 전송되었는지 알 수 있습니다. 다른면에서는 객체를 재구성해야합니다.

+0

Thx danben, 알겠습니다! – Azlam

1

예 있습니다.

OutputStream의 구현을 직접 작성하여 ObjectOutputStream 주위에 감쌀 수 있습니다. 출력 스트림은 decorators이므로 구현시 전송 된 바이트 수를 계산하고 SwingWorker을 비동기 적으로 업데이트하면 UI가 업데이트됩니다.

보내야 할 바이트 수를 알기 위해 보내야하는 객체의 크기로 OutputStream 구현을 초기화하십시오. 단벤의 대답을보세요.