Des questions similaires concernent les fichiers du lecteur C:
, où le codage en dur du chemin de fichier est une réponse acceptable. Cette application est mobile, et coder en dur le chemin du fichier n'est pas pratique.FileNotFoundException lorsque le fichier existe dans le même dossier que le programme
J'essaye d'importer un fichier texte par scanner, qui contient une liste de chaînes de caractères, 15 caractères chacune, 1 par ligne. BEAUCOUP de lignes Le nom de fichier est a.txt
.
Je l'appelle à l'aide
File data = new File("a.txt");
Scanner in = new Scanner(data);
répété les lignes ci-dessous avec "b.txt", en utilisant différents noms d'objets.
Cependant, quand je construis le programme, je reçois ce journal d'erreur (en utilisant Jcreator IDE):
--------------------Configuration: <Default>--------------------
E:\Simple Encryption\Simple_Encryption.java:17: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
Scanner in = new Scanner(data);
^
E:\Simple Encryption\Simple_Encryption.java:18: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
Scanner numsIn = new Scanner(nums);
^
2 errors
Process completed.
Le programme est dans le dossier E:/Simple Encryption/
, qui contient les fichiers et les dossiers suivants:
- Simple_Encryption.java
- Simple_Encryption.class
- lock.png (inutilisé)
- a.txt
- b.txt (même erreur que
a.txt
importation, une seule ligne ci-dessous) - /images (dossier, contient icon.png)
Il n'y a rien d'autre dans le dossier . Je ne peux pas coder en dur le chemin d'accès au fichier car sur des ordinateurs différents, il a des noms de lecteurs différents et sera distribué sous différents dossiers plus tard. (Ici (école), il est sur le E:
disque, à la maison, il est le J:
lecteur et au travail, il est sur le lecteur G:
.)
Bien que j'ai obtenu l'aide d'erreurs existantes, je dois importer cela sur le programme démarrage, et pas seulement l'ignorer. Le fichier existe sous sa forme actuelle et le programme ne peut pas fonctionner sans elle.
Quelle est l'origine de cette erreur? Et que puis-je faire pour éviter cela?