Importer fichier

Résolu
Bonjour,
Est ce qu'on peut importer un fichier(son, texte ... ) dans les sources du programme pour pouvoir l'utiliser sans avoir des problème d'emplacement ?
et merci

2 réponses

  1. Modérateur
    Bonjour,

    Tu peux ajouter n'importe quels dossiers et fichiers dans ton classpath pour accéder à leur contenu en relatif.

    Si tu travailles avec une architecture Maven le mieux est de les mettre dans src/main/resources
    1. mais moi je veux avoir un fichier .jar, où il y a les fichiers et le programmes
    2. Modérateur
      Ma réponse reste valide :-)

      Tout ce qui est dans le jar sera ajouté au classpath, donc tu peux accéder aux ressources qui sont dedans avec des chemins relatifs.

      Voir notamment la méthode Class.getResourceAsStream(String).

      Exemple :

      public class Test {
          public static void main(String[] args) {
              InputStream in = Test.class.getResourceAsStream("monDossier/monFichier");
          }
      }

      monDossier serait dans le classpath (par exemple dans le jar) et monFichier serait en rangé en dessous.
    3. @KXet comment l'utiliser, par exemple un son.wav

      et merci
    4. Modérateur
      @khalil-ktPar exemple, tu récupères le InputStream avec le code ci-dessus, et tu le passes à la méthode open d'un Clip.

      Clip clip = AudioSystem.getClip();
      clip.open(AudioSystem.getAudioInputStream(in));
      clip.start();
    5. @KXmerci pour vos réponses,
      Mais j'ai essayer ce code et il a toujours besoins des fichiers sur le bureau
      inputStream in = Main.class.getResourceAsStream("ss/pret.wav");
      		WavPlayer son = new WavPlayer(new File("c:/users/khalil kt/desktop/pret.wav"));
      		son.open();
      		son.play();
      		
      		Thread.sleep(400);
      		son.close();