-3
votes

Comment lire le fichier dans le dossier Ressources

Java et Intellij Newbie ici.Apologies Si cela a déjà été répondu, mais je ne peux pas sembler trouver la réponse.

Ma structure de projet est celle indiquée ci-dessous:

projet

J'essaie de déterminer comment lire le contenu du fichier StoredQueries StoredQuise.txt Highllight comme une seule chaîne. Cela doit être simple et j'ai essayé un certain nombre de méthodes impliquant GetClass, etc., mais rien n'a fonctionné jusqu'à présent. Apprécierait toute orientation, merci.


0 commentaires

3 Réponses :


1
votes

Vous pouvez lire le fichier en utilisant le chargeur de classe actuelle, mais avant cela, vous devez redresser un peu la structure. Lorsque vous utilisez Classloader pour lire le fichier, il apparaît par défaut dans le même paquet qu'il appartient.

Étape 1: Créer un nouveau package com.pe.Quiseries
Étape 2: Créez la classe package-info.java dans l'emballage ci-dessus
Étape 3: Créez de nouveaux répertoires imbriqués sous Ressources comme Ressources / COM / PE / QUERIES et déplacez le fichier dans ce répertoire.
Étape 4: Enfin, vous devriez être capable de lire le fichier comme package-info.class.getresource ("storequeries.txt");


0 commentaires

0
votes
getClass().getResource("/resources/etc.txt")
Put the resource folder inside target

0 commentaires

0
votes

Il y a deux façons dont vous pouvez obtenir votre ressource:

  1. par absolu , mais ce n'est pas bon, causer des chemins absolus ne sont pas fiables, mais c'est bon pour "Scumes"-tester
  2. par relative chemin, et il y a à nouveau deux manières.

    Dans les deux sens, vous pouvez utiliser getclass (). getResource (chemin) construction.

    Chemins relatifs:

    1. Si votre ressource est en «racine» de la ressource, votre chemin devrait commencer par / : "/etc.txt" Où dossier, etc.txt stocké dans le répertoire des ressources.

      Pour votre exemple dans l'image, votre chemin serait: /queries/storetraqueries.txt

      1. Si vos ressources sont dans le répertoire de ressources, mais dans les répertoires aplatissés, identiques à des packages pour la classe que vous invoquez .getresource (chemin) , comme:

        ressources / com / pe / requêtes / etc.txt

        Votre chemin ne doit pas inclure le démarrage '/': GetClass (). GetResource ("Com / PE / Queries / Fosstxt")

        Ceci est dû au fait que lorsque votre système de construction (votre Maven) construira le projet, il mettra votre ressource dans la "racine" de JAR si vous le stockez dans root du répertoire des ressources ou, si vous stockez comme Ressources / COM / PE / QUERIES / FOSTXT Crée à l'intérieur JAR COM / PE / QUERIES / et mettez-le à l'intérieur.

        Désolé pour mon anglais, j'espère que je vous aide à comprendre comment cela fonctionne.

        P.s. J'ai écrit cet article, c'est en russe, mais vous pouvez le traduire par Google-transate (j'ai essayé et c'est compréhensible), il y a plus d'exemples et d'explications à l'intérieur.

        Article sur les ressources sur russe

        bonne chance!


0 commentaires