IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Ecrire et lire un tableau de byte dans un fichier


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier Avatar de NutellaPiou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Points : 82
    Points
    82
    Par défaut Ecrire et lire un tableau de byte dans un fichier
    Bonjour à tous,

    Alors voilà j'aimerai écrire un tableau de byte dans un fichier et pouvoir le récuperer par la suite. En fait je dois crypter un mot de passe (à l'aide de l'algo blowfish). Une fois crypté, je récupère un tableau de byte[] avec dedans le mot de passe crypté.

    Mon fichier se présente de la manière suivante :
    login=babla
    passsword=MotDePasseCrypté

    Pour la lecture, j'utilise une méthode qui me renvoie un String. Je l'utilise pour par exemple récupérer le login.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    public String readFromFile(int numLine)
    {
            String inputLine = "Rien";
            try
            {
                FileReader reader = new FileReader(nameFile);
                BufferedReader in = new BufferedReader(reader);
                int i = 0;
                while (i < numLine)
                {
                    inputLine = in.readLine();
                    i++;
                }
                in.close();
                reader.close();
            }
            catch (FileNotFoundException ex)
            {
                System.out.println("Erreur lors de l'ouverture du fichier");
            }
            catch (IOException ex2)
            {
                System.out.println("Erreur lors de la lecture du fichier");
            }
            return inputLine;
    }
    Pour le mot de passe crypté j'ai essayé de récupérer le String et de le convertir en byte[] mais du coup le mot de passe qui est déjà crypté est retransformé lors de la conversion en byte... Du coup je ne peux plus le décrypter.

    Pour récapituler :
    J'ai mon password en byte[] et je dois l'écrire et le lire dans le fichier avec la configuration fichier inchangée.

    Je me casse la tête depuis 2 jours dessus et pas moyen de trouver.
    Si qqun à une idée,
    Merci d'avance.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 18
    Points : 20
    Points
    20
    Par défaut
    Ton problème est qu'une String ne peut être composée que de caractères valides. Or, ton tableau de byte[] contient des données qui ne peuvent être considérées comme des caractères valides.

    2 solutions s'offrent à toi :
    * Soit tu lis/écris ton byte[] dans le fichier en passant par les méthodes read/write classiques sur une FileInputStream/FileOutputStream (en gros, ne pas utiliser Reader/Writer).
    * Soit (si tu dois absolument conserver le fait que le stockage soit fait sous forme de String) tu transformes ton tableau de byte en quelque chose qui est une suite de caractères valides (encodage en MIME-64 par exemple)

    Bon courage

  3. #3
    Membre régulier Avatar de NutellaPiou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Points : 82
    Points
    82
    Par défaut
    Tout d'abord merci pour ta réponse.

    J'ai essayé la première solution. Alors j'ai réussi à écrire avec ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
                try
                {
                    //On écrit le password crypté et la variable isPwdCrypted dans le fichier Config.txt
                    FileOutputStream fout = new FileOutputStream(new File("Config.txt"));
                    fout.write(passwordCrypt);
                }
                catch (FileNotFoundException ex)
                {
                    System.out.println("Impossible d'ouvrir le fichier Config.txt");
                }
                catch (IOException ex)
                {
                    System.out.println("Erreur lors de l'écriture dans le fichier");
                }
    Bon comme j'ai fait pour le moment ça écrase tout et je ne conserve pas ma structure dans le fichier Config.txt
    Je vais chercher comment garder cette structure :
    login=ezer
    password=zerzer

    Donc j'ai bien écrit mon tableau de byte[] dans le fichier mais pour le lire et le restocker dans un tableau de byte[] comment puis-je faire?

    Merci d'avance

  4. #4
    Membre régulier Avatar de NutellaPiou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Points : 82
    Points
    82
    Par défaut
    Bon ben j'ai fait autrement pour écrire mon byte[] dans le fichier.

    J'ai créé un objet Properties et pour écrire mon tableau de byte je crée un nouveau String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    byte[] test;
    String aCopier = new String(test);
    Et grâce aux méthodes de la classe Properties ça écrit correctement dans le fichier et la lecture se passe aussi sans problèmes.

    Merci feuxeu de m'avoir répondu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage tableau de byte dans un textbox
    Par douezz dans le forum VB.NET
    Réponses: 3
    Dernier message: 01/06/2011, 14h46
  2. export d'un tableau byte dans un fichier excel
    Par JauB dans le forum ASP.NET
    Réponses: 4
    Dernier message: 22/04/2008, 12h36
  3. Réponses: 1
    Dernier message: 18/01/2007, 17h27
  4. Lire une enregistrement au hasard dans un fichier
    Par bonjour69 dans le forum Langage
    Réponses: 27
    Dernier message: 26/09/2006, 18h54
  5. Réponses: 3
    Dernier message: 14/04/2006, 19h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo