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

Entrée/Sortie Java Discussion :

Débutant: Enregistrer un (très grand) tableau numérique sur mon disque dur


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 29
    Points : 20
    Points
    20
    Par défaut Débutant: Enregistrer un (très grand) tableau numérique sur mon disque dur
    Bonjour,

    Je suis débutant avec java.IO (...et en java tout court je suis pas non plus une bête) et j'ai besoin de sauvegarder un grand tableau mono-dimentionnel de valeurs numériques de type "short" (valeurs de -32768 à 32767), d'une longueur de quelques milliers ou quelques millions d'éléments, dans un fichier. Et plus tard de recharger ensuite ce tableau dans mon programme Java. **

    Dans mon programme, le tableau serait déclaré, par exemple, comme suit:
    short [] sequence = new short [12000000] ;
    (...)

    1 - Je pensais sauvegarder, une variable int qui contiendrait la taille du tableau, et le tableau lui-même, dans le même fichier. Mon fichier, par exemple : "MaSequence", serait crée dans un dossier bien precis sur mon HD, par exemple /DATA/Musique/Sequences/MaSequence

    2 - Ensuite quand je réouvrirais le fichier, je lirais la variable int indiquant la taille du tableau à charger, puis je chargerais mon tableau.

    Je lie des tutoriels sur java.io depuis quelques jours mais je suis un peu perdu, quelqu'un aurait t'il une petite idée pour faire ça en quelques lignes de code ?

    Merci d'avance.
    Alexandre


    (** : pour info: ce tableau est une sequence de mouvements de stylet wacom avec laquelle je fais de la musique)

  2. #2
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Bonjour,

    Présente-noous le code que tu as écrit. On t'aidera.

    Pourquoi désires-tu connaître à l'avance la taille de ton fichier?

    On peut induire le nombre d'enregistrement (taille du vecteur) en connaissant la taille du fichier et la taille d'un enregistrement de short.

    sinon il suffit d'écrire en entête du fichier un long donnant la taille de ton vecteur. En lecture, on lit un long (taille du vecteur) puis les données...
    Bien le bonjour chez vous
    Jowo

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Ben j'ai pas de code parce que j''ai pas vraiment compris quelle methode de quelle classe utiliser pour ecrire et lire un tableau de "short" dans un fichier...
    (Dans mes tutoriels, j'ai seulement trouvé des exemples qui ecrivent des variables ou des chaines de caracteres)

    Désolé si ma demande fais un peu "quelqu'un peut il m'ecrire mon code à ma place", mais c'est vrai qu'avec un mini-exemple en cinq ligne, je comprendrais mieux parce que je trouve pas mes bouquins de java trés clairs et je suis un peu dans le broullard avec les 50 classes que compte le package java.io...

    Citation Envoyé par jowo Voir le message
    Pourquoi désires-tu connaître à l'avance la taille de ton fichier? - On peut induire le nombre d'enregistrement (taille du vecteur) en connaissant la taille du fichier et la taille d'un enregistrement de short.

    sinon il suffit d'écrire en entête du fichier un long donnant la taille de ton vecteur. En lecture, on lit un long (taille du vecteur) puis les données...
    je sais pas, c'est quoi qui se fait en general ? le plus simple? interroger la taille du fichier ou écrire un long de la taille des données ?

    merci d'avance!
    Alexandre

  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Bonjour,

    En combinant la classe BufferedOuputStream et la classe DataOuputStream, tu arriveras à tes fins.

    Pseudo-Code (ne prendre comme base)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    OutputStream out = new BufferedOutputStream(new FileOutputStream("myFile.raw"), 32 * 1024);
    DataOutputStream dataOut = new DataOutputStream(out);
    short[] data = new short[1024];
    for (int i = 0; i < data.length; ++i) {
      dataOut.writeShort(data[i]);
    }
    dataOut.flush();
    dataOut.close;
    out.close();
    Bien le bonjour chez vous
    Jowo

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Super, ton code, en fait j'ai trouvé un petit cours particulier ici, là ou je suis à Cordoba en Espagne, parce-que j'avais des tonnes de questions sur toutes ces histoires de flux, donc au final, ton code à servi de base pour le cour, d'ailleurs le prof au départ avais même pas pensé à utiliser l'objet DataOutputStream pour convertir les données en bytes, il pensait le faire manuellement. donc merci beaucoup pour ton code !

    Alexandre

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

Discussions similaires

  1. Installer UBUNTU 7.04 sur mon disque dur externe
    Par anas.eh dans le forum Ubuntu
    Réponses: 9
    Dernier message: 19/10/2017, 08h51
  2. Réponses: 1
    Dernier message: 25/01/2008, 15h18
  3. importer une base sur mon disque dur
    Par Ralfman68 dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 29/10/2007, 12h04
  4. Installer windows sur mon disque dur externe
    Par anas.eh dans le forum Windows XP
    Réponses: 13
    Dernier message: 31/08/2007, 13h59
  5. faire le lien avec une image sur mon disque dur
    Par tsubasette dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 23/10/2006, 00h45

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