penso di fare un po di confusione con le flush credo perche se sposto il primo "inserisci stringa(le 4 righe), alla fine, cioè dopo l'ultima flush, non funziona. O meglio funziona solo se decommento la dis.readLine(). qualche idea? grazie anticipatamentecodice:class stream{ public static void main(String[] args){ BufferedInputStream bis=new BufferedInputStream(System.in); BufferedOutputStream bos=new BufferedOutputStream(System.out); DataInputStream dis=new DataInputStream(bis); DataOutputStream dos=new DataOutputStream(bos); int dim=5; byte[] b=new byte[dim]; int n; String stringa=new String(); try{ System.out.print("Inserisci stringa: "); //dis.readLine(); stringa=dis.readLine(); System.out.println(stringa); System.out.print("SCRIVI QUALCOSA(EOF per uscire dal while):"); while((n=dis.read())!=-1){ dos.write(n); //bos.println(n) non lo prende?? bos.flush(); } System.out.print("Inserire dati nel buffer: "); dis.readFully(b, 0, dim); System.out.print("buffer riempito fino a " + dim + " caratteri con readFully: "); dos.write(b); bos.flush(); } catch(Exception e){ System.out.println(e); } finally{/*niente*/} /*--------------------------------------------------------------*/ } }
ps: le flush le devo chiamare sul buffered output stream o sul data output stream?

Rispondi quotando