Entra

View Full Version : [Java] testare il contenuto di un ObjectInputStream


randoman
28-12-2007, 22:49
Si può leggere un Object da un ObjectInputStream senza effettivamente estrarlo? Dovrei fare la seguente cosa:
ciclo{
se nello stream c'è un oggetto di classe NomeClasse allora estrailo (cioè fai readObject()) ed esci dal ciclo,
altrimenti continua a ciclare lasciando l'Object nello stream in modo che qualcun altro possa estrarlo
}

71104
29-12-2007, 14:41
Si può leggere un Object da un ObjectInputStream senza effettivamente estrarlo? Dovrei fare la seguente cosa:
ciclo{
se nello stream c'è un oggetto di classe NomeClasse allora estrailo (cioè fai readObject()) ed esci dal ciclo,
altrimenti continua a ciclare lasciando l'Object nello stream in modo che qualcun altro possa estrarlo
} non credo si possa, percui dovresti programmare una classe derivata da FilterInputStream (ovviamente da piazzare sotto l'ObjectInputStream) che quando viene chiamato uno dei metodi read in realtà faccia solamente un "peek" anziché una vera e propria estrazione; o per meglio dire, che sia in grado di fare un peek o un vero e proprio read in base ai comandi che tu gli dai (dovresti metterci dei metodi che controllano un flag interno che determina se deve fare peek o read).

sottovento
29-12-2007, 16:45
Si può leggere un Object da un ObjectInputStream senza effettivamente estrarlo? Dovrei fare la seguente cosa:
ciclo{
se nello stream c'è un oggetto di classe NomeClasse allora estrailo (cioè fai readObject()) ed esci dal ciclo,
altrimenti continua a ciclare lasciando l'Object nello stream in modo che qualcun altro possa estrarlo
}

Penso che si possa risolvere il problema usando le mark() e reset(), se il tuo stream le supporta