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

Java Discussion :

Ecrire un fichier binaire


Sujet :

Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 26
    Par défaut Ecrire un fichier binaire
    Bonjour à tous !

    Je dois créer des fichiers binaires en Java, qui devront être interprétés ensuite par un programme en C, et qui de ce fait ont une structure bien définie :
    par exemple le "nom du fichier", qui est la première donnée à écrire, à une longueur prévue de 8bits, et il est suivi d'un champ int, sur 4 bits.
    Le nom que j'utilise lors de mes tests, ne fait que 5 caractères, donc il me faudrait 3 bits à NUL afin d'utiliser les 8 bits prévus, et ecrire mon int au bon endroit.


    Je converti mes données (String) en bytes avec la méthode getBytes (
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String.getBytes ("UTF-8");
    ), qui me retourne un tableau de byte.
    Quelle méthode puis-je utiliser sur ce tableau afin de remplir mes 3 derniers bits ?
    J'ai bien essayé un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(bytes.length<8)
    {
      while(bytes.????)
      {
     
      }
    }
    mais la seule méthode qui semble interessante sur l'objet bytes[] est equals(), mais à quoi comparer le byte ??

    J'espère que ma question est assez claire !!! n'hésitez pas à me demander des précisions si nécessaire !

    PS : La gestion des bits/octets ne sont vraiment pas ma spécialité, merci de votre indulgence !!

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 584
    Par défaut
    D'abord tu écris les bytes du nom de fichier, puis tu écris ( 8 - bytes.length ) fois l'octet zéro.

    Autre possibilité : créer un byte[] de longueur exactement 8 et qui contient au début le nom de fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    byte[] bytes = new byte[8];
    byte[] partial = nomDeFichier.getBytes("utf-8");
    System.arrayCopy(partial, 0, bytes, 0, partial.length);
    Citation Envoyé par lelfedesboa
    PS : La gestion des bits/octets ne sont vraiment pas ma spécialité, merci de votre indulgence !!
    Effectivement. Mais il faudrait vraiment arrêter de les confondre, le plus tôt possible.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 26
    Par défaut
    Super !! merci beaucoup de ton aide (et de m'avoir compris, en me relisant, je vois mes lacunes !!)
    Mais je devrais les rattraper assez vite vu le programme sur lequel je bosse

  4. #4
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 26
    Par défaut
    au cas où, ça pourrait servir à d'autres, j'ai trouvé cette classe qui offre pas mal de fonctions pour ecrire un fichier binaire
    http://docs.oracle.com/javase/1.4.2/...ccessFile.html

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 584
    Par défaut
    Oui, certes. On y aurait pensé aussi, et en fait on en parle souvent quand on parle de trucs où elle sert.

    Sinon, quand on est plus dans une logique de flux, il y a OutputStream, aussi.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. lire et ecrire un fichier binaire
    Par Ytech123 dans le forum Débuter
    Réponses: 14
    Dernier message: 07/08/2025, 15h59
  2. Ecrire un fichier binaire avec AS3
    Par f56bre dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 16/12/2008, 19h49
  3. Ecrire un fichier binaire
    Par tyarcaouen dans le forum C#
    Réponses: 2
    Dernier message: 18/10/2008, 19h17
  4. Ecrire un fichier binaire en C++
    Par anas.eh dans le forum C++
    Réponses: 2
    Dernier message: 03/09/2007, 15h32
  5. Ecrire un fichier binaire avec des caractères
    Par stokastik dans le forum C
    Réponses: 18
    Dernier message: 17/08/2006, 17h40

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