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

Contribuez Java Discussion :

Librairie utilitaire Java: JavaMogLib


Sujet :

Contribuez Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Librairie utilitaire Java: JavaMogLib
    Bonjour à tous,
    Etant amateur du développement en java (en réalité, je me suis intéressé à java pour ses fonctions multi-plateforme), je me suis développé des petits utilitaires java empaquetés dans une lib.

    N'ayant trouvé aucune lib (qui ne soit pas effroyablement lourde) contenant ces différents utilitaires, j'ai créé la mienne.

    J'espère que vous y trouverez une utilité, et j'espère pouvoir récolter vos avis, demandes et retours .

    GitHub du projet: https://github.com/AlexMog/JavaMogLib
    JavaDoc du projet: http://alexmog.tv/javamoglib/doc/
    Téléchargements du projet: http://www.mediafire.com/folder/dl3b...nfd/JavaMogLib

    Je vous remercie d'avoir pris le temps de vous intéresser au projet.


    Cordialement,
    AlexMog.

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    As tu pensé à regarder du côté de java.nio.file.Files ou Google Guava ou Apache Commons (Lang/IO) ?

    Quelques conseils :
    org.MogLib.library.utils.DirUtils#readDir(File)
    • Renomme la méthode de sorte que la recherche des sub-directories se lise dans le nom (ou bien utilise un paramètre).
    • Les répertoires ne sont jamais listés
    • Je te conseillerai de trier les éléments
    • Je te conseillerai d'utiliser une liste en paramètre pour la récursion plutôt que de créer une nouvelle liste à chaque fois. De plus ca permettrait de choisir l'implémentation de son choix.

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (list != null) {
      for (int i = 0; i < list.length; i++)
        listFiles.addAll(readDir(list[i]));
    } else
      throw new Exception("File read error");
    • Si tu ne mets pas d'accolade, je te conseille de mettre l'instruction sur la même ligne.
    • Dans certains cas, listFiles renvoie null pour les répertoires vides.


    org.MogLib.library.utils.DirUtils#copyDir(File, File)
    • Crée des variables pour stocker destination.getAbsolutePath() et dir.getAbsolutePath().
    • Si tu n'utilisais pas le getAbsolutePath tu n'aurais pas besoin de faire de replace.
    • Renomme dir en source
    • Tu reconstruits le parent file à chaque fois avec ta méthode.
    • Les répertoires vides ne sont pas copiés.


    org.MogLib.library.utils.DirUtils#moveDir(File, File)
    • Essaye d'abord avec renameTo avant de faire ton bazar.
    • Tu laisses les répertoires vides de la source.
    • Les répertoires vides de la source ne sont pas créés.


    org.MogLib.library.utils.FileUtils
    • Fusionne cette classe et la précédente et gère les spécificités par des conditions et des méthodes privées.
    • Remplace JProgressBar par BoundedRangeModel.


    org.MogLib.library.utils.FileUtils.FileUtils()
    • Change la visibilité par "protected" ca permet de "fusionner" des classes utilitaires étendues et rend la classe "abstract".


    org.MogLib.library.utils.FileUtils.copyFile(File,File,JProgressBar)
    • Utilise un paramètre pour définir la taille du buffer
    • Utilise plutôt 4096 comme valeur par défaut pour la taille du buffer
    • Ne recopie pas tout le buffer dans le fichier de sortie mais utilise le nombre d'octet lu
    • Utilise try-with-resources pour gérer proprement les fermetures de flux.


    Pour le reste même remarques que précédemment.

    Je regarderai le reste si j'ai le temps.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup pour tes conseils, je vais tenter de les mettre en place .
    Pour la fonction renameTo, je ne pensais pas qu'elle prenait aussi en compte le chemin. Merci pour l'info!

    Cordialement,
    AlexMog.

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Attention au renameTo, car il renvoie false (et ne fait rien) si le fichier n'est pas sur le même disque ou la même partition.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Nemek Voir le message
    Attention au renameTo, car il renvoie false (et ne fait rien) si le fichier n'est pas sur le même disque ou la même partition.
    Du coup il faudra que je copie à la main si il renvois false.
    Merci à toi.

Discussions similaires

  1. Quelle librairie manque à java?
    Par robert_trudel dans le forum Général Java
    Réponses: 5
    Dernier message: 31/08/2008, 13h53
  2. créer une librairie en java
    Par aroua dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 06/03/2008, 17h53
  3. Utilitaire java pour date sous excel
    Par 461219 dans le forum Langage
    Réponses: 9
    Dernier message: 06/02/2008, 10h50
  4. Réponses: 2
    Dernier message: 22/01/2008, 18h16
  5. [Librairie] Statistique Java
    Par youbyoub dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 30/03/2007, 09h24

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