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

Langage Java Discussion :

Rechargement de données


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Par défaut Rechargement de données
    Bonjour,
    Je cherche comment recharge des données d'un fichier .json que je charge au lancement de mon application java.

    Voici comment je charge mon dossier qui contient mes fichier .json
    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
     
    Dans mon Main :
    private void setupConfigs() {
     
            MouseListener.executorService.execute(() -> {
     
                try {
                    if (new File(CONFIG_DIR).mkdir()) {
                    }
                    File file = new File(DEFAULT_CONFIG);
                    if (!file.exists()) {
                        FileWriter fileWriter = new FileWriter(file);
                        gson.toJson(new Config(), fileWriter);
                        fileWriter.close();
                    }
     
     
                    ConfigManager1.getInstance1().readConfigs();
                    ConfigManager2.getInstance2().readConfigs();
     
                } catch (IOException e) {
                    e.printStackTrace();
                }
            });
        }
    Ma class
    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
     
    import com.google.gson.Gson;
    import com.google.gson.GsonBuilder;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.util.ArrayList;
     
     
    public class ConfigManager1 {
     
      public static ArrayList<Config> configs = new ArrayList<>();
      private static ConfigManager1 ourInstance1 = new ConfigManager1();
      int currentConfig = 0;
     
      private ConfigManager1() {
     
      }
     
      public static ConfigManager1 getInstance1() {
        return ourInstance1;
      }
     
      public void readConfigs() {
        configs.clear();
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        File dir = new File(Main.CONFIG_DIR);
        File[] files = dir.listFiles();
        if (files != null) {
          for (File file : files) {
            try {
              BufferedReader br = new BufferedReader(new FileReader(file));
              Config config = gson.fromJson(br, Config.class);
              config.name = file.getName().replace(".json", "");
              configs.add(config);
              System.out.println("Loaded Config-1:\n" + gson.toJson(config));
              br.close();
            } catch (Exception e) {
              e.printStackTrace();
            }
     
          }
        }
      }
     
      public Config getCurrentConfig() {
        if (configs.size() <= 0) {
          return new Config();
        } else {
          return configs.get(currentConfig);
        }
      }
     
      public void cycleConfigs() {
        if (configs != null && configs.size() > 0) {
          if (currentConfig == configs.size() - 1) {
            currentConfig = 0;
          } else {
            currentConfig++;
          }
        }
      }
     
    }
    Tout ceci marche parfaitement bien.

    Ce que je voudrai pouvoir faire c'est prendre un compte la modification a chaud d'un paramettre dans le fichier .json que l'utilisateur ferai.

    j'ai reflechis a deux solution :

    Premiere :

    Redemarre mon apps (peu etre redemarre mon Main serai plus judicieux et moins lourd..):

    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
     if (e.getKeyCode() == NativeKeyEvent.VC_F11) {
            System.out.println("Exit/CloseApps");
            try {
              GlobalScreen.unregisterNativeHook();
              MouseListener.executorService.shutdown();
     
                try {
                    Runtime.getRuntime().exec("java -jar Monapps.jar");  // Mode test ----  NB: Ne pas oublier de change le bind de restart
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
                System.exit(1);
            } catch (NativeHookException e1) {
              e1.printStackTrace();
            }
          }
    Probleme : je n'arrive pas a créer un fichier qui garde en mémoire l'état de mon apps avant fermeture et la relance la ou elle en etais. Solution que je prefererai


    deuxieme :
    Via mon keylistener, recharger les données des fichier json ou que ca se fasse automatiquement.



    Je vous remercie d'avance de l'aide apporte.

    Cordialement

    Fred

  2. #2
    Membre confirmé
    Homme Profil pro
    Artisant
    Inscrit en
    Avril 2018
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Artisant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 169
    Par défaut
    Bonsoir,

    J'ai tente ceci mais sans succes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      if (e.getKeyCode() == NativeKeyEvent.VC_F2) {
             try {
                 Class c = Class.forName("Configuration");
             } catch (ClassNotFoundException e1) {
                 e1.printStackTrace();
             }
     
          }
    J'ai ce message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    java.lang.ClassNotFoundException: Configuration
    	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
    	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    	at java.base/java.lang.Class.forName0(Native Method)
    	at java.base/java.lang.Class.forName(Class.java:292)
    	at r1bellu2b.norecoil.KeyBoardListener.nativeKeyPressed(KeyBoardListener.java:114)
    	at org.jnativehook.GlobalScreen$EventDispatchTask.processKeyEvent(Unknown Source)
    	at org.jnativehook.GlobalScreen$EventDispatchTask.run(Unknown Source)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    	at java.base/java.lang.Thread.run(Thread.java:844)
    Merci d'avance pour l'aide apporte

    Fred

  3. #3
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    Citation Envoyé par R1beLlu2B Voir le message
    Class c = Class.forName("Configuration");
    Est-ce que la classe Configuration existe ?
    Pour info, un exemple d'utilisation de Class.forName se trouve ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Class classe = Class.forName("java.lang.String");
    https://jmdoudoux.developpez.com/cou...#introspection

Discussions similaires

  1. double recharge de données
    Par jesslegende dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/09/2009, 01h50
  2. [AJAX] Cache, avec le rechargements des données.
    Par saidgrd dans le forum AJAX
    Réponses: 1
    Dernier message: 07/05/2009, 16h21
  3. Control et recharge de Donnée
    Par hawk91 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 10/04/2009, 10h15
  4. [AJAX] Recharger les données d'un tableau
    Par Herman dans le forum Général JavaScript
    Réponses: 36
    Dernier message: 01/07/2008, 15h05
  5. Recharger les données d'un fichier
    Par solean45 dans le forum Débuter
    Réponses: 4
    Dernier message: 20/12/2007, 16h23

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