Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    153

    Da array di byte a string

    Salve ragazzi, qualcuno può aiutarmi? Ho questo problema devo fare override del metodo write( byte[] buffer, int offset, int length ) di una classe PrintStream, devo costruire una string dall'array buffer ma non ci riesco nel senso che non mi concatena la stringa così come dovrebbe essere ma mi mette su ogni linea un carattere. OCme fare? grazie per l'aiuto fin da adesso.

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

    Re: Da array di byte a string

    Originariamente inviato da prog
    Ho questo problema devo fare override del metodo write( byte[] buffer, int offset, int length ) di una classe PrintStream
    Cioè hai esteso PrintStream??

    Originariamente inviato da prog
    devo costruire una string dall'array buffer ma non ci riesco nel senso che non mi concatena la stringa così come dovrebbe essere ma mi mette su ogni linea un carattere. OCme fare? grazie per l'aiuto fin da adesso.
    No alt ... in PrintStream i metodi write() che scrivono i byte, scrivono proprio dei byte "crudi" e li passano pari pari all'output stream "sottostante".

    Se il tuo PrintStream non ha come destinazione un OutputStream ma fa qualcos'altro, allora rispiega meglio la questione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    153
    Allora ho avuto bisogno di implementare una classe che estende PrintStream perchè ho bisogno di leggere quello che un certo software scrive sulla console. QUesto software per scrivere sulla console utilizza il metodo write(byte[] buffer, int offset, int length), però a me serve convertire l'array di byte(buffer nella firma del metodo) in una stringa per controllare alcune cose.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da prog
    Allora ho avuto bisogno di implementare una classe che estende PrintStream perchè ho bisogno di leggere quello che un certo software scrive sulla console. QUesto software per scrivere sulla console utilizza il metodo write(byte[] buffer, int offset, int length), però a me serve convertire l'array di byte(buffer nella firma del metodo) in una stringa per controllare alcune cose.
    Puoi passare ad un String usando l'apposito costruttore di String (che ha gli stessi identici parametri buffer+offset+length ).
    Ma poi bisognerebbe vedere le questioni sul charset.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    153
    Utilizando solo il costruttore di String mi crea una cosa del genere:
    se per esempio l'array di bytes contiene i seguenti caratteri (sempre in formato byte) F,a,i,l,u,r,e allora facendo String(arrayOfBytes) mi crea un astringa del genere:
    F
    a
    i
    l
    u
    r
    e

    è come se ad ogni caratteri mi concatena degli spazi.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da prog
    allora facendo String(arrayOfBytes)
    Il costruttore da usare è:
    public String(byte[] bytes, int offset, int length)

    Comunque non ho idea ... se ti passa solo byte con codici ASCII non ci dovrebbero essere problemi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    153
    Originariamente inviato da andbin
    public String(char[] value, int offset, int count)
    offset metto 0 giusto?
    mentre in count metto la lunghezza del vettore?

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.