Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    JAVA - String to byte[]

    Salve a tutti,
    ho un problema con il salvataggio di un array di byte in un file XML (quindi lo devo salvare come stringa):

    1-genero un array di byte
    2-costruisco una stringa a partire dall'array
    3-inserisco la stringa nel file XML

    A questo punto dovrei estrarre l'array di byte dalla stringa ed è qui che sorge il problema...

    codice:
               //Genero un array di 128 bit
                SecureRandom _sr = SecureRandom.getInstance("SHA1PRNG");
                byte[] _b = _sr.generateSeed(16);
                //Ricostruisco la stringa a partire dall'array di byte
                String _s = new String(_b);
    
                //Estraggo l'array di byte dalla stringa
                byte[] _t = new byte[_s.getBytes().length];
                for(int i =0;i<_t.length;i++)
                {
                    _t[i] = _s.getBytes()[i];
                }
                System.out.println();
                for(int j =0;j<_b.length;j++)
                {
                    System.out.print(_b[j]);
                }
                System.out.println();
                for(int j =0;j<_t.length;j++)
                {
                    System.out.print(_t[j]);
                }
                System.out.println();
    Ecco i due array di byte:
    0116-64-62114-65-22-110-69113-6411433450-12
    0116-17-65-67-17-65-67114-17-65-67-22-110-69113-17-65-6711433450-17-65-67

    Perchè i due array sono diversi???
    e poi perchè se ricostruisco le due stringhe sono identiche???

    Grazie in anticipo

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Ho spostato la discussione nel forum dedicato a Java.
    In futuro, poni qui le tue domande relative a questo linguaggio.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ti chiedo innanzitutto di usare le convenzioni java (significa che i nomi di variabili non iniziano per underscore "_") e di dare quanto meno nomi significativi (anche per comprensione di chi legge).
    Detto questo, stai attento alle conversioni e ai passaggi.

    Per copiare l'array usa
    codice:
    public static void arraycopy(Object src,
                                 int srcPos,
                                 Object dest,
                                 int destPos,
                                 int length);
    codice:
    System.arrayCopy(source, 0, dest, 0, source.length);
    e hai copiato un array in un altro.

    Per quanto riguarda la conversione attento a come interpreta un elemento quello che tu hai. Mi spiego, se tu hai il valore x, sei sicuro che il valore x in byte sia perfettamente uguale al valore x di un char??

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.