ola para todos.
gostaria de saber se alguem pode me ajudar a atribuir os valores de uma progress bar para um readobject() de um ObjectInputStream
se eu tenho que implementar uma classe ou o que eu posso fazer.
no aguardo
Andre.
ola para todos.
gostaria de saber se alguem pode me ajudar a atribuir os valores de uma progress bar para um readobject() de um ObjectInputStream
se eu tenho que implementar uma classe ou o que eu posso fazer.
no aguardo
Andre.
Deixe o “progress bar” como indeterminado, já que você não tem como saber quantos bytes ocupam os dados serializados.
desculpa mais eu não intendi o que vc quis dizer
acho que não fui especifico.
eu preciso que o meu progress bar ande de acordo com que o readObject() carregue os dados.
Você já tem o arquivo em mãos, ou é algo que você não sabe o tamanho (por exemplo, o tal ObjectInputStream é um encapsulamento de um socket ou coisa parecida?)
Se você tiver o arquivo em mãos, você pode fazer o seguinte: em vez de reescrever o ObjectInputStream, você escreve um encapsulamento sobre o FileInputStream. Vou dar um exemplo:
interface ProgressListener {
void progress (double percent, String message);
}
class ProgressInputStream extends InputStream {
public ProgressInputStream (InputStream inps, ProgressListener progressListener, long totalSize) {
this.inps = inps; this.progressListener = progressListener; this.totalSize = totalSize;
this.totalBytesRead = 0;
}
private long totalBytesRead;
public int read(byte[] b,
int off,
int len)
throws IOException {
int nBytes = inps.read (b, off, len);
if (progressListener != null) {
totalBytesRead += nBytes;
progressListener.progress (totalBytesRead / totalSize, "");
}
return nBytes;
}
public int read () ....
public int read (byte[] b) ....
}
e
ProgressListener progressListener = ...;
ObjectInputStream ois = new ObjectInputStream (new ProgressInputStream (new FileInputStream (new File ("object.bin")),
progressListener, new File ("object.bin").length());