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

Entrée/Sortie Java Discussion :

générer un fichier binaire OCTET par OCTET


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut générer un fichier binaire OCTET par OCTET
    Bonjour tout le monde,

    mon problème consiste principalement à ecrire un code JAVA qui me permettrait de générer un fichier binaire (et le sauvegarder pour une utilisation ultérieure) à partir d un fichier xml...

    Je me demandais comment devrais-je débuter..?

    merci de votre aide..

    (je suis débutant en JAVA)

  2. #2
    Membre éprouvé
    Profil pro
    Devops
    Inscrit en
    Août 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Devops

    Informations forums :
    Inscription : Août 2006
    Messages : 107
    Par défaut
    Tu devrais regarder du côté du ByteArrayOutputStream. En ajoutant tes octets les uns après les autres, comme tu le sens et en récupérant l'ensemble du tableau d'octet avec la fonction toByteArray().

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut
    merci pour ta réponse,

    si je déclare un tableau de byte, je le remplis comme je l entends je pourrai apres récupérer tout le fichier?

    autre question si j'ai envie de le remplir en format hexadecimal que dois-je faire?

    encore merci

  4. #4
    Membre éprouvé
    Profil pro
    Devops
    Inscrit en
    Août 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Devops

    Informations forums :
    Inscription : Août 2006
    Messages : 107
    Par défaut
    En fait, si tu connais déjà la taille des données que tu veux produire, effectivement tu peux utiliser un tableau de byte. Sinon, Java propose tout un ensemble de classe permettant la manipulation de flux utilisant un tampon ou non permettant de produire, entre autre, un tableau a la fin du travail.

    Pour écrire des valeurs en hexa decimal, tu peux faire de la façon suivante :
    si je déclare un tableau de byte, je le remplis comme je l entends je pourrai apres récupérer tout le fichier?
    Euh... Je ne comprends pas vraiment ce que tu essayes de dire parce qu'ici, le tableau est en mémoire et un fichier est un ensemble d'octet sur un disque. Après avoir fait ton tableau en mémoire tu peux l'ecrire sur le disque en utilisant les fameux flux (stream en anglais).

    Note : Attention le byte en Java est signé : les valeurs possibles sont dans l'interval [-127, 128].

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut
    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
    import java.io.*;
    
    public class TestByteArrayOutputStream {
    	public static void main(String[] args){
    		ByteArrayOutputStream bos=new ByteArrayOutputStream();
    		int byteLu;
    		byte[] tab=new byte[17];
    		//ecriture dans le tampon
    		for(byte i=0;i<10;i++) {
    			bos.write(i);
    		}
    		//récuperation des données contenues dans le tampon
    		tab=bos.toByteArray();
    		//affichage des données
    		for(int j=0;j<10;j++) {
    			System.out.println(tab[j]);
    		}
    	}
    }
    le tableau est un tableau de 17 octets...

    moi c que je voudrai faire c'est entrer des valeurs OCTET par OCTET..

    c à dire que je les insère moi même...

    et ca j y arrive pas..j suis vraiment débutant en java..
    est-ce que ce code peut m'aider à faire ca et ou est-ce que je devrais modifier le code pour que j'arrive à inserer mes entrées ?

    merci

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut
    merci pr ta réponse j viens juste de la lire..en fait j ai posté mon dernier post avant d 'avoir eu l'occasion de la lire...

    pour te répondre c'est que je dois :

    entrer manuellement les donnees octet par octet dans un tableau de byte puis ce recuperer ce tableau sous forme de suite binaire...(par exemple un TEST.dat) est-ce faisable?

  7. #7
    Membre éprouvé
    Profil pro
    Devops
    Inscrit en
    Août 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Devops

    Informations forums :
    Inscription : Août 2006
    Messages : 107
    Par défaut
    Je suis peux-etre pas réveillé mais quand tu dis ça :
    Citation Envoyé par SeptembreNoir84 Voir le message
    entrer manuellement les donnees octet par octet dans un tableau de byte puis ce recuperer ce tableau sous forme de suite binaire...(par exemple un TEST.dat) est-ce faisable?
    Est-ce que par manuellement, tu entends que le programme dois demander à l'utilisateur de rentrer les valeurs ? (Parce que sinon, le code d'exemple précédant est exactement ce que tu veux non ?)
    A partir de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //ecriture dans le tampon
    		for(byte i=0;i<10;i++) {
    			bos.write(i);
    		}
    Tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //ecriture dans le tampon
    		bos.write((byte)0x01);
    		bos.write((byte)0x02);
    		bos.write((byte)0x03);
    		etc...
    Et pour lire ou ecrire des valeurs binaires dans un fichier tu peux utiliser les Stream dont je parlais.

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

Discussions similaires

  1. probléme lecture de fichier binaire octer par octet
    Par ousmanesidibe dans le forum C++
    Réponses: 2
    Dernier message: 12/12/2009, 21h34
  2. [Gestion de fichiers] Lecture octet par octet
    Par kendras dans le forum C
    Réponses: 21
    Dernier message: 18/09/2006, 15h08
  3. Calculer le MD5 d'un fichier octet par octet
    Par bouazza92 dans le forum C
    Réponses: 5
    Dernier message: 09/08/2006, 20h39
  4. Lecture d'un fichier octet par octet
    Par Yux dans le forum C
    Réponses: 7
    Dernier message: 31/10/2005, 22h58
  5. Lecture d'un fichier octet par octet
    Par PopKoRn...X_x dans le forum C++
    Réponses: 10
    Dernier message: 01/07/2005, 19h09

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