Où placer un fichier texte que je veux utiliser eclipse?
J'ai besoin de lire un fichier texte lorsque je démarre mon programme. J'utilise eclipse et a commencé un nouveau projet java. Dans mon dossier de projet, j'ai obtenu le "src" et le dossier standard "JRE System Library" + staedteliste.txt... je ne sais pas où mettre le fichier texte. J'ai littéralement essayé de chaque dossier, je pense off....Je ne peux pas utiliser un "codés en dur" chemin d'accès, car le fichier texte doit être inclus avec mon application...
J'utilise le code suivant pour lire le fichier, mais j'ai cette erreur:
Error:java.io.FileNotFoundException:staedteliste.txt(No such file or directory)
public class Test {
ArrayList<String[]> values;
public static void main(String[] args) {
//TODO Auto-generated method stub
URL url = Test.class.getClassLoader().getResource("src/mjb/staedteliste.txt");
System.out.println(url.getPath()); //I get a nullpointerexception here!
loadList();
}
public static void loadList() {
BufferedReader reader;
String zeile = null;
try {
reader = new BufferedReader(new FileReader("src/mjb/staedteliste.txt"));
zeile = reader.readLine();
ArrayList<String[]> values = new ArrayList<String[]>();
while (zeile != null) {
values.add(zeile.split(";"));
zeile = reader.readLine();
}
System.out.println(values.size());
System.out.println(zeile);
} catch (IOException e) {
System.err.println("Error :"+e);
}
}
}
- lors du lancement de votre application à partir d'Eclipse, vous pouvez configurer le répertoire de démarrage. Êtes-vous sûr que vous n'avez pas accidentellement misconfigure il?
new File(".").getAbsolutePath()
vais vous montrer.
Vous devez vous connecter pour publier un commentaire.
Demander d'abord vous-même: votre fichier d'un interne composant de votre application?
(Qui implique généralement qu'il est emballé à l'intérieur de votre POT, ou de la GUERRE si c'est une web-app; en général, c'est un fichier de configuration ou de la ressource statique, en lecture seule).
Si la réponse est oui, vous ne souhaitez pas spécifier un chemin absolu pour le fichier. Mais vous ne voulez accéder à un chemin d'accès relatif (comme ton exemple), parce que Java suppose que le chemin est relatif au "répertoire courant". Habituellement, la meilleure façon pour ce scénario est de le charger relativement depuis le classpath.
Java vous offre la chargeur de classe.getResource() méthode pour ce faire. Et Eclipse (en mode normal), ce qui suppose
src/
est d'être dans la racine de votre classpath, de sorte que, après la compilation, il copie tout à votre répertoire de sortie (bin/
), les fichiers java en forme compilée (.class
), le reste comme c'est.Ainsi, par exemple, si vous placez votre fichier dans
src/Files/myfile.txt
, il sera copié au moment de la compilation debin/Files/myfile.txt
; et, au moment de l'exécution,bin/
sera dans (la racine) de votre classpath. Donc, en appelantgetResource("/Files/myfile.txt")
(dans certaines de ses variantes), vous serez en mesure de le lire.Édité: de Plus, si votre fichier est conceptuellement lié à une classe java (par exemple, certains
com.example.MyClass
a unMyClass.cfg
fichier de configuration associé), vous pouvez utiliser le getResource() la méthode de la classe et utiliser une (des ressources) chemin relatif:MyClass.getResource("MyClass.cfg")
. Le fichier sera recherché dans le classpath, mais avec le paquet de classes pré-annexé. De sorte que, dans ce scénario, vous aurez généralement le lieu de votreMyClass.cfg
etMyClass.java
fichiers dans le même répertoire.Un chemin à prendre est de
Utiliser le chargeur de ressources pour localiser le fichier:
Il suffit de créer un dossier
Files
soussrc
et de mettre votre fichier.Cela va ressembler à
src/Files/myFile.txt
Remarque:
Dans votre code, vous devez spécifier comme ce
Files/myFile.txt
par exemple,
Ainsi, lorsque vous construisez votre projet et exécutez le .fichier jar cela devrait être en mesure de travailler.
Supposons que vous avez un projet appelé "projet d'essai" sur Eclipse et le dossier espace de travail est situé à E:/eclipse/workspace. Lorsque vous générez un projet Eclipse, votre classpath est alors
e:/eclipse/workspace/TestProject
. Lorsque vous essayez de lire "staedteliste.txt" vous essayez d'accéder au fichier àe:/eclipse/workspace/TestProject/staedteliste.txt
.Si vous voulez avoir un dossier distinct pour votre projet, puis de créer le dossier de Fichiers de sous projet d'essai et ensuite ouvrir le fichier avec le chemin relatif)
/Files/staedteliste.txt
. Si vous placez le fichier dans le répertoire src, alors vous devez accéder à l'aide de/src/staedteliste.txt
. Un dossier de Fichiers à l'intérieur du dossier src serait/src/Files/staedteliste.txt
Au lieu d'utiliser le chemin relatif, vous pouvez utiliser l'absolu par l'ajout de
e:/eclipse/workspace/
au début, mais en utilisant le chemin d'accès relatif est mieux parce que vous pouvez déplacer le projet sans se soucier de refactoring tant que le dossier du projet de la structure est la même.En fonction de votre classe Java package de nom, vous êtes probablement 4 ou 5 niveaux de la structure de répertoire.
Si votre classe Java package est, par exemple, com.stackoverflow.projet, votre classe est situé dans le dossier src/com/stackoverflow/projet.
Vous pouvez déplacer la structure de répertoire avec plusieurs
../
, ou vous pouvez déplacer le fichier texte dans le même package que la classe. Il serait plus facile de déplacer le fichier texte.Vous devriez probablement prendre un regard sur les différentes saveurs de getResource dans la classe ClassLoader: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ClassLoader.html
MJB
S'il vous plaît essayer cette
Dans eclipse "clic Droit" sur le fichier texte u wanna utilisation,
voir et copier le chemin d'accès complet stockées dans le disque dur comme (si dans UNIX "/home/sjaisawal/Space-11.4-template/provisioning/devenv/Test/src/testpath/testfile.txt")
mettre ce chemin d'accès complet et essayer.
si cela fonctionne alors de la classe-problème de chemin d'accès d'autre GOK 🙂
Si c'est un projet simple, vous devez être en mesure de faire glisser le fichier txt droit dans le dossier du projet. Plus précisément, le "dossier de projet" serait le plus haut niveau de dossier. J'ai essayé de le faire (pour un devoir que je fais) en mettant le fichier txt dans le dossier src, mais cela ne fonctionne pas. Mais finalement, j'ai réalisé pour le mettre dans le fichier de projet.
Un bon tutoriel pour ce qui est http://www.vogella.com/articles/JavaIO/article.html. J'ai utilisé cela comme une intro de i/o et il a aidé.
Prendre un coup d'oeil à ce vidéo
Tout ce que vous avez à faire est de sélectionner votre fichier (en supposant que c'est même simple forme de fichier txt), puis faites-le glisser pour le projet dans Eclipse, puis la déposer. Choisissez Copier à la place de Lien car il est plus souple. Voilà, j'ai juste essayé.