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

Java Discussion :

Manipuler un TRES gros fichier


Sujet :

Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Manipuler un TRES gros fichier
    Bonjour,
    dans le cadre d'un projet je dois manipuler une base de données au format texte de 30 Go. La base de données n'est pas sous un format usuel, et c'est hors de question d'utiliser un logiciel de SGBD vu qu'il va tout falloir télécharger ce qui prendrait beaucoup trop de temps.
    J'aimerais faire un script simple en Java qui me permet de récupérer les informations que je veux à l'intérieur (moins de 1Go très probablement), sauf que j'imagine que la JVM est incapable de manipuler un fichier de cette taille vu que j'ai 8Go de ram dont 2 réservés à la JVM. Est-ce que c'est possible de contourner ce problème ?
    J'aimerais par exemple découper le fichier en plusieurs morceaux pour partager le travail avec une autre personne et éviter de bloquer mon ordinateur pendant quelques jours. Merci pour votre réponse !

  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,


    Pour vraiment t'aider il faudrait connaitre le format du fichier...

    As-tu vraiment besoin de tout charger en mémoire pour accéder aux informations ?
    N'est-il pas possible de récupérer les infos à la volée en lisant le fichier ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    C'est un fichier .txt

    On a de la chance parce que toute la base est contenue dans une seule table même si les lignes sont de taille très inégale, je dirais de 100 à 2000 caractères. On cherche à récupérer deux colonnes par ligne donc il suffit de lire les lignes une par une.

    C'est possible de couper le fichier en 100 morceaux d'environ 300Mo avec un simple BufferedWriter / Reader qui recopie dans des nouveaux fichiers ? Ou alors Java charge tout le fichier dans la ram ? C'est ça que je demande

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Citation Envoyé par AlonzoChurch Voir le message
    donc il suffit de lire les lignes une par une.
    Tu réponds toi même à ta question la

    Si tu lis lignes par lignes alors il n'y aura pas de problèmes à priori et il ne chargera pas tout en mémoire.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Ok c'est parfait merci !
    Je vais devoir me mettre à niveau sur la gestion des fichiers en Java je pense

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

Discussions similaires

  1. Manipulation d'un (gros) fichier Excel
    Par benpt dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/08/2017, 11h36
  2. TFileStream : probleme de seek sur très gros fichiers
    Par simoryl dans le forum Composants VCL
    Réponses: 6
    Dernier message: 21/08/2007, 14h00
  3. Ouvrir un TRES gros fichier
    Par BainE dans le forum Windows XP
    Réponses: 3
    Dernier message: 05/04/2007, 17h13
  4. Comparaison de fichiers très gros volume
    Par tanys dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 27/06/2006, 23h58
  5. Optimisation de la lecture de tres gros fichiers
    Par Lydie dans le forum C++Builder
    Réponses: 4
    Dernier message: 12/07/2004, 14h09

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