Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [JAVA] BufferReader

  1. #1

    [JAVA] BufferReader

    Ho creato un BufferReader in questo modo

    Socket s1 = s.accept();
    InputStream is = s1.getInputStream();
    BufferedReader br = new BufferedReader(
    new InputStreamReader(is));
    String message = br.readLine();
    Il metodo readLine(), da documentazione, legge linee di testo, ma considera la Stringa terminata ad ogni occorrenza dei caratteri \n e \r.

    Ora io voglio passare linee di testo contenenti il carattere speciale \n, in modo che la stringa Message sia opportunamente creata.

    Il passaggio avviene tramite scrittura in una JTextArea.

    Dunque se scrivo nella mia JTA

    Pinco
    Pallino
    Franco
    Ciccio
    br.readLine restituisce solo

    Pinco, perchè dopo incontra \n.

    Come faccio invece a passare tutto ciò che è contenuto nella JTA?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] BufferReader

    Originariamente inviato da ragnonerodocet
    Il metodo readLine(), da documentazione, legge linee di testo, ma considera la Stringa terminata ad ogni occorrenza dei caratteri \n e \r.
    Se leggi bene la documentazione, BufferedReader accetta come newline: \n (stile Unix/Linux) oppure \r (stile Mac) oppure \r\n (stile Dos/Win).

    Originariamente inviato da ragnonerodocet
    Come faccio invece a passare tutto ciò che è contenuto nella JTA?
    Non ho ben capito ... da una parte invii il testo contenuto in una JTextArea e dall'altra (quella che hai postato) vuoi ricevere le linee?? Leggi tutte le linee, no?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    ... è questo il bello...

    Come faccio a leggere tutte le linee???

    So che è una domanda banalissima, ma non so come fare...

  4. #4
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Di solito si usano cose di questo tipo

    codice:
    String riga;
    while ((riga=in.readLine())!=null)
    {
      ...
    }
    dove in di solito è un BufferedReader...
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  5. #5
    Provo e ti dico...

  6. #6
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Altrimenti ti conviene cercare da chi questo genere di spiegazioni le da per lavoro

    All about sockets - Tutorial by sun
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  7. #7
    Il problema non si risolve...

    La parte fissa che scrivo è questa:

    Socket s1 = s.accept();
    InputStream is = s1.getInputStream();

    BufferedReader br = new BufferedReader(
    new InputStreamReader(is));
    Mettiamo il caso in cui io scriva nella JTA

    Ciccio
    Pippo
    Franco

    Se scrivo

    String f = br.readLine();
    setMessage(f);
    setMessage restituisce solo Ciccio, perchè leggo una sola linea...

    Se invece scrivo

    String message = null;
    String i = null;

    while ((message = br.readLine())!=null)
    {
    i += message;
    }

    setMessage(i);
    setMessage ritorna null...

    Se riesco a capire perchè nel primo caso stampi solo la prima parola, nel secondo caso non capisco perchè ritorna null...

    Qualcuno può aiutarmi???

  8. #8
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Non ha senso.. A parte il fatto che dovresti scrivere:
    codice:
    i = "";
    e non
    codice:
    i = null;
    Ne desumo che hai qualche casino che non traspare da quanto hai scritto.

    Tanto per curiosità, prova a scrivere:
    codice:
    while ((message = br.readLine())!=null)
    {
      System.out.println ("message: "+message);
      i += message;
    }

    Ma sopratutto, hai letto il tutorial sui socket? Ci sono degli esempi di Thread che comunicano tra loro. Guarda quelli e poi adattali a quello che vorresti fare tu. E' il modo più veloce per capire come fare e per realizzare quanto vuoi fare.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.