Partage
  • Partager sur Facebook
  • Partager sur Twitter

Question à propos de nio

Y'a t'il moyen de faire un buffer pour une classe

Sujet résolu
    15 mai 2009 à 14:18:01

    Salut, j'aimerais savoir si il est possible avec les classes dans nio de faire un buffer sur un type qui n'est pas un type primitif mais une classe d'objet.

    Ceci dans le but de faire comme en c++ avec l'opérateur sizeof, c'est à dire lire un nombre de byte de la taïlle de telle structure, et ensuite pouvoir récupérer les champs de la structure.
    Comme le fait cette instruction en c++ par exemple :
    file.read( (char *)&m_kHeader, sizeof( md2_header_t ) );

    Moi j'aimerais faire la même chose mais non avec une structure parce qu'elle n'existent pas en Java mais avec une classe.
    Quelqu'un sais t'il comment faire cela en Java?
    Merci d'avance.
    (Le fichier n'a pas été écris en Java mais avec blender donc je ne sais pas si la séréalisation marcherais.)
    • Partager sur Facebook
    • Partager sur Twitter
      15 mai 2009 à 15:14:07

      Désolé, mais je n'ai pas compris ce que tu voulais faire. Je ne comprend pas non plus le morceau de code présenté.
      • Partager sur Facebook
      • Partager sur Twitter
        15 mai 2009 à 15:18:20

        Han ok, sans doute que tu n'as jamais fais de c++ alors.
        Si y'a pas moyen c'pas grâve je pourrai me débrouiller autrement, c'est juste pour me simplifier la tâche.
        les structures en c++ simplifie beaucoup je trouves avec l'opérateur sizeof, dommage qu'il n'y ai pas cela en Java.

        • Partager sur Facebook
        • Partager sur Twitter
          15 mai 2009 à 15:27:59

          Rien ne t'empêche d'écrire une méthode read et write qui prennent un stream entrant respectivement un stream sortant en paramètre, pour remplir respectivement sauvegarder un objet de ta classe.
          La sérialisation automatique proposée par java ne fonctionnera pas pour un fihcier binaire qui n'a pas été lui-même créé par java.
          Il n'existe pas d'autre moyen automatisé, donc ce sera à toi d'écrire ces fonctions...
          • Partager sur Facebook
          • Partager sur Twitter
            15 mai 2009 à 16:09:23

            Oui, j'ai compris ton problème, et je ne pense pas que ce soit possible. Ce qu'il te faut, c'est de la sérialisation xml pour que ce soit compatible entre Java et autre chose. De toute manière, ce ne sont que des attributs que tu semblais vouloir récupérer, il te suffit donc d'écrire toi même rapidement une méthode qui peut récupérer les données depuis un fichier et les insérer dans un objet.
            • Partager sur Facebook
            • Partager sur Twitter
              15 mai 2009 à 16:17:29

              Ok merci de vos réponses.
              • Partager sur Facebook
              • Partager sur Twitter
                15 mai 2009 à 17:34:40

                Si ton programme a rentré des objet dans le fichier que tu lis, tu peux toujours essayer de construire un ObjectInputStream sur le fichier.
                Plus d'info ici : http://java.sun.com/docs/books/tutoria [...] tstreams.html
                • Partager sur Facebook
                • Partager sur Twitter
                  15 mai 2009 à 17:56:12

                  Euh non il n'a rentrée aucun objets dans le fichier.
                  Mais ça va je m'en suis sortis comme ça, au pire à l'avenir je convertis mes fichiers en xml avant de les charger. (A l'aide de JDOM)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Question à propos de nio

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown