Partage
  • Partager sur Facebook
  • Partager sur Twitter

Flux

entrees/sorties

    8 février 2015 à 13:53:22

    j'ai un autre probleme:

    j'étudie sur les flux présentement et mon code suivant fait la copie d'un fichier vers un autre.

    apres la copie je fais un affichage de mon buffer, mais j'ai de l'affichage en trop, pouvez-vous m'aider merci.

    voici le code:

    package copie2;

    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;

    public class Main {

        public static void main(String[] args) {
            try(FileInputStream fis = new FileInputStream("test4.txt");
                FileOutputStream fos = new FileOutputStream("test5.txt")){
                byte[] buf = new byte[8];
                int n =0;
                while((n = fis.read(buf)) >= 0){
                    fos.write(buf);
                    for(byte bit : buf){
                       
                        System.out.println("\t"+ bit+ "("+  (char)bit+")" );
                        System.out.println((char)bit);
                    System.out.println("");
                       
                    }
                    buf = new byte[8];
                }
                System.out.println("Copie terminée ......");
            }catch(IOException e){
                e.printStackTrace();
            }

        }

    }

    et j'ai cet affichage en trop:

    d

        10(
    )
     0()

    0()

    0()

    0()

    Merci de votre aide

    -
    Edité par alphasitezero 24 avril 2015 à 14:23:21

    • Partager sur Facebook
    • Partager sur Twitter
      9 février 2015 à 3:03:17

      Salut,

      premièrement ton code est très difficile à lire parce qu'on ne peut pas vraiment différencier les commentaires. La prochaine fois met ton code dans les balises pour formater ton code correctement sur le forum. Tu peux utiliser l'icône en haut </> qui est comme ceci.

      Ensuite, 

      j'ai compilé ton code et tout semble bien fonctionné. Voici le résultat de l'exécution :

      Création d'une ville ...:

      Invocation de super.decrisToi()

      Inconnu est une ville de Iconnu et elle comporte 0 habitant (s) ==> elle est donc de catégorie ?

       toto en est un monument

      • Partager sur Facebook
      • Partager sur Twitter
      L'avantage d'être intelligent, c'est qu'on peut toujours faire l'imbécile, alors que l'inverse est totalement impossible. - Woody Allen
        9 février 2015 à 4:31:29

        hello, merci pour ta réponse et désolé pour les commentaires qui n'étaient que personnel de mon côté.Mais je dois avoir un probleme avec mon code au niveau de la compilation car j'ai refait le test en isolant cette ligne:  cap2.setMonument("toto"); avec un comentaire, et j'ai activé celle-ci:   abc = "aucun" dans le constructeur par defaut de Capitale cette fois le resultat est correcte ie:  aucun ent est un momument.....; mais aussitôt que je fais l'inverse, mon résultat reste toujours à aucun en est un monument.... et j'ai même utilisé le mode console en recompilant tous les fichiers mais rien n'y fait

        • Partager sur Facebook
        • Partager sur Twitter
          9 février 2015 à 19:41:07

          Quel environnement de développement que tu utilises?

          Assure toi d'avoir bien sauvegardé ton code. Tu peux également faire un "clean" qui permet de nettoyer ton projet. Assure toi également que l'IDE recompile ton code.

          -
          Edité par Sparkix 9 février 2015 à 19:41:37

          • Partager sur Facebook
          • Partager sur Twitter
          L'avantage d'être intelligent, c'est qu'on peut toujours faire l'imbécile, alors que l'inverse est totalement impossible. - Woody Allen
            24 avril 2015 à 13:28:38

            salut, j'utilise Eclipse

            merci.

            • Partager sur Facebook
            • Partager sur Twitter
              24 avril 2015 à 14:18:51

              salu Sparkix,

              j'ai un autre probleme:

              j'étudie sur les flux présentement et mon code suivant fait la copie d'un fichier vers un autre.

              apres la copie je fais un affichage de mon buffer, mais j'ai de l'affichage en trop, pouvez-vous m'aider merci.

              voici le code:

              package copie2;

              import java.io.FileInputStream;
              import java.io.FileOutputStream;
              import java.io.IOException;

              public class Main {

                  public static void main(String[] args) {
                      try(FileInputStream fis = new FileInputStream("test4.txt");
                          FileOutputStream fos = new FileOutputStream("test5.txt")){
                          byte[] buf = new byte[8];
                          int n =0;
                          while((n = fis.read(buf)) >= 0){
                              fos.write(buf);
                              for(byte bit : buf){
                                 
                                  System.out.println("\t"+ bit+ "("+  (char)bit+")" );
                                  System.out.println((char)bit);
                              System.out.println("");
                                 
                              }
                              buf = new byte[8];
                          }
                          System.out.println("Copie terminée ......");
                      }catch(IOException e){
                          e.printStackTrace();
                      }

                  }

              }

              merci de votre aide

              • Partager sur Facebook
              • Partager sur Twitter

              Flux

              × 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