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

avec Java Discussion :

Fonction de cryptage ne marche pas [Résolu]


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2019
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Fonction de cryptage ne marche pas [Résolu]
    Bonjour,
    J'ai fait une méthode de cryptage 'maison' dont voila le code:
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
     
    public class Crypter {
     
        public static void main(String[] args) throws IOException {
            File fileand = new File("C:\\Users\\*******\\Downloads\\monfichier.txt");
            FileWriter file = new FileWriter(fileand, true);
            BufferedReader reader = new BufferedReader(new FileReader(fileand));
            String line = reader.readLine();
            while (line != null) {
                line.toUpperCase();
                for (int i = 1 ; i < fileand.length() ; i++){
                 char cara = line.charAt(i);
                    switch(cara){
                   case 'A' : file.write("zzdr");
                   break;
                   case 'B': file.write("ffjzor");
                   break;
                   case 'C':file.write("0");
                   break;
                   case 'D' :file.write("p");
                   break;
                   case 'E':file.write("V ");
                   break;
                   case 'F':file.write("aad");
                   break;
                   case 'G':file.write("bjd");
                   break;
                   case 'H':file.write("ddcf");
                   break;
                   case 'I':file.write("bjjfd");
                   break;
                   case 'J' :file.write("frfg");
                   break;
                   case 'K' :file.write("oodfgg");
                   break;
                   case 'L' :file.write("pmmmd");
                   break;
                   case 'M' :file.write("Bbff");
                   break;
                   case 'N':file.write("ffkek");
                   break;
                   case 'O':file.write("dbbdjd");
                   break;
                   case 'P' :file.write("Ddbfjf");
                   break;
                   case 'Q' :file.write("bjsoff");
                   break;
                   case 'R' :file.write("ffegg");
                   break;
                   case 'S':file.write("jjiff");
                   break;
                   case 'T':file.write("Fjfjf");
                   break;
                   case 'U':file.write("Vjkfff");
                   break;
                   case 'V':file.write("fjfifg");
                   break;
                   case 'W':file.write("Jhkff");
                   break;
                   case 'X':file.write("vhjlidf");
                   break;
                   case 'Y' :file.write("chjhchs");
                   break;
                   case 'Z': file.write("pkjvbkjh");
                   break;
                   default : 
                       break;
     
                    }  
                }
                file.close();
            }
     }
    }
    Je débute en programmation et je ne vois peut être pas un problème évident mais quand j’exécute le programme dans netbeans, la console n'affiche pas d'erreurs mais le programme tourne à l'infini et quand je vérifie le fichier qui devrait etre crypter, il n'y a rien qui a changé
    Quelqu'un pourrait t-il m'aider ? Merci d'avance !

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Plusieurs remarques :

    • Il est préférable d'utiliser le try-with-ressource pour libérer proprement les flux de fichier.
    • A partir de Java 7 il est préférable d'utiliser l'API Path bien plus complète.
    • Indentes ton code correctement c'est illisible.
    • Tu ne peux pas ouvrir deux fois le même fichier en lecture et écriture : le comportement est imprévisible.
      Soit tu lis le fichier entièrement en mémoire puis tu le réécris (mais c'est coûteux en mémoire).
      Soit tu utilises un fichier temporaire que tu renommes à la fin du traitement.
    • La condition de ton while() n'est jamais atteinte : la variable "line" n'est plus modifié par la suite. Pour lire ligne par ligne il faut utiliser while ( (line=reader.readLine()) != null) {
    • La condition de ton for() est également fausse : tu compares la taille de la ligne à la taille du fichier ce qui n'a aucun sens. En plus tu ignores complètement le premier caractère.
    • Et plus globalement ta fonction de chiffrement est incomplète et risque de poser problème au déchiffrage, puisque tu ne traites pas toutes les combinaisons, notamment les chiffres ou les lettres minuscules...



    a++

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Janvier 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2019
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci, comme je l'ai dit je débute en programmation et je ne suis pas encore très doué. Je vais modifier tous cela et je sais qu'il est incomplet. Merci pour l'aide.

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

Discussions similaires

  1. [MySQL] fonction delete qui ne marche pas
    Par bassiste dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 10/05/2008, 00h58
  2. VBA Access : Fonction find qui ne marche pas
    Par leeloo35 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/02/2008, 16h56
  3. Réponses: 18
    Dernier message: 06/10/2007, 23h03
  4. requete SQl avec la fonction max () qui ne marche pas
    Par eclipse012 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/11/2006, 14h32
  5. fonction clic multiple ne marche pas !
    Par decksroy dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 06/10/2006, 10h55

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