2011-02-06 2 views
1

une questionces objets doivent java DataOutputStream getOutputStream() getInputStream()

dans le cas par exemple de

DataOutputStream output= new DataOutputStream(clientSocket.getOutputStream()) ; 

ou

DataInputStream in = new DataInputStream(clientSocket.getInputStream()); 

à créer chaque fois que je besoin d'un I/O opération ou juste invoquer une lecture ou une écriture sur eux chaque fois que j'ai besoin ??? (plus un rinçage après chaque opération)

Répondre

3

Vous ne devez créer ces objets qu'une seule fois, c'est-à-dire une fois que votre socket a été initialisée.

2

Les deux variantes sont possibles, mais il est plus utile de les créer une seule fois.

Si vous voulez une mise en mémoire tampon (pour éviter l'envoi d'un nouveau paquet TCP pour chaque commande d'écriture), vous voudrez peut-être penser à mettre un BufferedInputStream entre la prise et DataIn/sortie:

DataOutput output = new DataOutputStream(new BufferedOutputStream(clientSocket.getOutputStream())); 
DataInput input = new DataInputStream (new BufferedInputStream (clientSocket.getInputStream())); 

Je suis en utilisant les interfaces DataInput/DataOutput à la place des classes Stream ici, car souvent vous n'aurez besoin que des méthodes qui y sont définies.

Questions connexes