ObjectInputStream/ObjectOutputStream

10 respostas
L

eu to fazendo um programa que se comunica pela rede com outro…
anteriormente eu usava o DataInputStream e o DataOutputStream mas agora resolvi usar o ObjectInputStream e o ObjectOutputStream só que quando eu mando o ObjectInputStream ficar esperando pra receber alguma coisa ele da um erro (EOFException) com o Data isso naum acontecia.
alguem sabe de alguma alternativa para resolver isso???

10 Respostas

I

De acordo com a API da Sun…

Mais informações… EOFException

T+

L

tah valew cara…
mas eu num entendi como eu posso resolver isso se eh que eu posso…

I

Dá uma conferida nos objetos que estais enviando e verifica se algum parâmetro não é “Serializable”. T+

L

desculpa a ignorancia mas como eu faço isso???

I

Tens de verificar os tipos declarados do objeto que estais transferindo. Por exemplo:

public class MyObject implements Serializable {
    public MyObject() {}
    //getters & setters
}

Certifique-se de que tua classe é serializable e que os atributos da classe também implementam serializable. Já tive problemas transferindo objetos com elementos não serializáveis. T+

L

mas o erro ocorre mesmo quando eu to lendo alguma outra coisa que não é um objeto…
tipo uma boolean…

L

tipo acho que você não entendeu o que eu quero fazer

eu criei uma thread só pra ficar recebendo as coisas…
dai eu do o seguinte comando

Informacao info = (Informacao) in.readObject();

e é nessa linha que ele da o erro…
mas isso ocorre porque não tem nada pra ele ler e é pra ele ficar esperando o outro programa mandar algo para ele ler…
quando eu fazia isso com o DataInputStream ele não dava esse erro…

I

Então tenta isto:

//...
while (exec()) {
    try {
        Informacao info = (Informacao) in.readObject();
    } catch (Exception e) {
        wait(500);
    }
}
//...

E controla a leitura com o exec(), implementando dentro dele quando o loop deve cessar. T+

L

consegui resolver o problema…
valew…

I

Olá. Sugiro que coloques aqui a resposta para que outras pessoas possam orientar-se também. T+

Criado 18 de dezembro de 2006
Ultima resposta 19 de dez. de 2006
Respostas 10
Participantes 2