Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    378

    in = new DataInputStream(...) thread

    Ciao a tutti, dovrei eseguire in un thread la lettura di un DATAINPUTSTREAM, in particolare mi basterebbe stampare quello che leggo.

    Il thread dovrebbe stare fermo finchè non sono presenti dei dati da leggere sull IN. Ora ho fatto così e sembra funzionare ma è un metodo DEPRECATO...

    codice:
    public class ThreadRicezione implements Runnable{
    
    	String riga = "";
    	
    	public void run(){
    		while(true){
    			try{
    				riga += in.readLine();
    				System.out.println("RIGA THREAD: " + riga);
    				riga = "";
    				
    				}
    			catch(Exception err){
    				System.out.println("ERRORE LETTURA NEL THREAD...");
    				}
    			}
    		}
    	
    }
    ho provato con in.readUTF() ma a quanto pare non legge niente....

    grazie per l'aiuto !!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Sei obbligato ad usare un DataInputStream?
    Se non sei obbligaro usa BufferedReader come suggerito dalla documentazione ufficiale.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    378
    ciao, intanto grazie, non è che potresti farmi un esempio cos' provo ??

    grazie ancora !

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Al posto di
    codice:
    DataInputStream in = new DataInputStream(tuoStream);
    metti
    codice:
    BufferedReader in = new BufferedReader(tuoStream);
    Il resto resta uguale, cioe' usi readLine() che per questa classe non e' deprecato e fa la stessa cosa(solo che la fa senza bug).

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    378
    ciao, ho appena provato ma mi dice che il costruttore non è valido.... quindi suppongo che non si possa fare...

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Originariamente inviato da bmw
    ciao, ho appena provato ma mi dice che il costruttore non è valido.... quindi suppongo che non si possa fare...
    Devi prima utilizzare un wrapper:
    codice:
    BufferedReader in = new BufferedReader( new InputStreamReader(tuoStream) );
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    378
    ciao, facendo così:

    in = new BufferedReader(new InputStreamReader(connection));

    mi da come errore: "the constructor InputStreamReader(StreamConnection) is undefined"

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    378
    per eliminare quel metodo deprecato ho usato .readByte(), ma con questo metodo mi aggiunge anche i caratteri /n, /r ecc....


    ho provato a eliminarli con un replaceAll() ma non mi fa cambiare "/n" con "", come posso fare ??


    un ultima cosa, vorrei poter fermare il thread con la pressione di un bottone , come posso fare ??


    grazie !!

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Originariamente inviato da bmw
    ciao, facendo così:

    in = new BufferedReader(new InputStreamReader(connection));

    mi da come errore: "the constructor InputStreamReader(StreamConnection) is undefined"
    Se stai usando l'oggetto StreamConnection (non era specificato), devi fare così:
    codice:
    in = new BufferedReader(new InputStreamReader( connection.openInputStream() ));
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    378
    ringrazio tutto, siete stati davvero molto gentili e davvero in gamba !!

    chiedo un ultima cosa, come posso fermare il thread quando non mi serve più !?!?

    grazie!

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.