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 :

lecture contenu fichier binaire CDR (Call Detail Record) avec Java


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut lecture contenu fichier binaire CDR (Call Detail Record) avec Java
    Bonjour,
    j'ai dans le cadre de mon projet scolaire un projet a faire concernant un logiciel capable de lire des fichiers binaires CDR (d'appels) générés par les MSC (Mobile Switch Center) puis de les transformer en fichier Texte ou CSV en fonction des besoins. pour ce faire j'ai utilisé la libraire BouncyCastle pour pouvoir décoder le format ASN.1 des fichiers CDR binaire, mais j'arrive simplement a lire leurs structures et une partie du contenu (je pense les métadonnées du fichier) et le contenu (les enregistrements d'appels restent illisible).
    J'aimerais savoir comment m'y prendre pour y arriver

    voici le code pour la lecture des fichiers que j'ai eu a utilisé pour lire les fichiers :
    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
    import org.bouncycastle.asn1.*;
    import org.bouncycastle.asn1.util.ASN1Dump;
     
    import java.io.*;
    import java.nio.file.Files;
    import java.nio.file.Paths;
     
    public class Main {
     
        public static void main(String[] args) {
     
            try (DataInputStream dis = new DataInputStream(Files.newInputStream(Paths.get("DCRCMSS22201603271954286443")))){
     
                ASN1InputStream stream = new ASN1InputStream(dis);
     
                ASN1Primitive primitive = stream.readObject();
     
                System.out.println(ASN1Dump.dumpAsString(primitive, true));
     
            } catch (FileNotFoundException ex) {
                ex.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
     
     
        }
     
    }
    et voici la sortie :

    Sequence
        Tagged [0] IMPLICIT 
            Sequence
                Tagged [0] IMPLICIT 
                    DER Octet String[9] 
                        1603271854252b0100                                                  'T%+
                Tagged [1] IMPLICIT 
                    DER Octet String[1] 
                        00                                                                  
                Tagged [2] IMPLICIT 
                    Sequence
        Tagged [1] IMPLICIT 
            Sequence
                Tagged [7] IMPLICIT 
                    Sequence
                        Tagged [0] IMPLICIT 
                            DER Octet String[1] 
                                07                                                                  
                        Tagged [1] IMPLICIT 
                            DER Octet String[6] 
                                9142831130f3                                                        B0

    bon la sortie est trop longue je l'ai coupé
    Merci pour l'aide.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    arriver à quoi ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Candidat au Club
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    a lire le contenu du binaire

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Sauf erreur de ma part, ce n'est pas juste après "et voici la sortie :" dans ton premier post ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Candidat au Club
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    non là c'est la structure du fichier, normalement je devrais voir les enregistrements des appels et autre mais là je ne vois que le structure asn.1 du fichier binaire

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    461
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 461
    Points : 894
    Points
    894
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Délire, de l'ASN1...
    J'en ai fait au CNAM, et j'en ai un très mauvais souvenir.

    Bon, comme dit précédemment, les codes binaires sont lu.

    En Java, la lecture d'un flux binaire est lu par la classe Outputstream.
    On a plusieurs type de OutputStream (les fichiers,...).

    ASN1InputStream étends FilterInputStream qui étend OutputStream.
    C'est donc cette classe qui lit le flux binaire.
    Pour répondre à ta question (comment est lu le flux), il faut savoir (très bien expliqué par le prof de NFP121 d'ailleurs) que la classe OutputStream est basé sur le Design Pattern Décorateur ( https://fr.wikipedia.org/wiki/D%C3%A...de_conception) )

    Dans ta classe ASN1InputStream, tu passe déjà une classe OutputStream. Je pense que le rôle de la classe ASN1InputStream est de lire un stream et de l'interpréter selon ASN1.

    Par contre, je me permet un reproche.

    Il est vrai que la première chose à savoir pour OutputStream (et InputStream), on utilise le pattern décorateur.
    Mais il y a une seconde chose à savoir, et cette chose est encore plus importante. Je dirais même qu'elle est rédhibitoire.

    Une classe de flux (OutputStream, InputStream, ...) doit toujours être fermée après usage.

    La classe ASN1InputStream est une classe de flux. Elle doit donc être fermée. elle doit donc être instancié dans le try (pour être exact, le try withs ressources).

    Cordialement.

Discussions similaires

  1. Lecture de fichier binaire
    Par nuans dans le forum MATLAB
    Réponses: 23
    Dernier message: 21/05/2007, 10h00
  2. Lecture de fichier binaire et gestion de fin de fichier
    Par habasque dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 02/05/2007, 17h06
  3. lecture ecriture fichier binaire
    Par jonckers dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/04/2007, 09h12
  4. Réponses: 5
    Dernier message: 26/03/2007, 01h30
  5. lecture de fichier binaire
    Par Salim6 dans le forum C
    Réponses: 3
    Dernier message: 07/11/2005, 19h56

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