import Java.io.*;
import Java.util.Scanner;
public class Driver {
private int colorStrength;
private String color;
public static void main(String[] args) throws IOException {
String line, file = "strength.txt";
File openFile = new File(file);
Scanner inFile = new Scanner(openFile);
while (inFile.hasNext()) {
line = inFile.nextLine();
System.out.println(line);
}
inFile.close();
}
}
Ceci est une petite partie d'un programme que j'écris pour une classe (les deux attributs privés doivent encore être utilisés, je le sais), mais lorsque j'essaie de l'exécuter avec le fichier Strength.txt, je reçois les erreurs suivantes:
Exception in thread "main" Java.io.FileNotFoundException: strength.txt (The system cannot find the file specified)
at Java.io.FileInputStream.open(Native Method)
at Java.io.FileInputStream.<init>(Unknown Source)
at Java.util.Scanner.<init>(Unknown Source)
at Driver.main(Driver.Java:14)
Si quelqu'un avec Eclipse pouvait m'aider à comprendre cela, ce serait très apprécié!
Vous avez utilisé un chemin de fichier relative qui est relatif à l'exécution de votre projet.
Si vous souhaitez le faire de cette façon, placez simplement le fichier strength.txt
dans le répertoire base de votre projet. Ainsi:
Vous pouvez également faire référence au chemin du fichier absolute
sur votre système. Par exemple, utilisez:
Les fenêtres:
C:/dev/myproject/strength.txt
Mac/Unix:
/Users/username/dev/strength.txt
(ou quel que soit le chemin complet).
Faire ceci
System.out.println(openFile.getAbsolutePath());
Il vous montrera où la JVM s'attend à trouver le fichier et si c'est le dossier que vous attendez également. Placez le fichier en conséquence ou donnez l'emplacement exact.
Utilisez-le pour voir quel chemin de fichier le système utilise pour atteindre le chemin relatif
System.out.print(System.getProperty("user.dir"));
Assurez-vous ensuite que le chemin relatif suit immédiatement ce chemin.
Vous pouvez également transformer cela en chaîne en faisant
String filePath = System.getProperty("user.dir");
et ensuite vous pouvez simplement ajouter cela au début du chemin du fichier,
ImageIcon imageIconRefVar = new ImageIcon(filePath + "/imagepathname");
J'ai trouvé que cela résolvait le problème lorsque je l'utilisais dans le chemin (ce qui semblait étrange puisque ce devait être l'endroit où il se trouve, mais cela a fonctionné)
Vous avez utilisé un chemin de fichier relatif relatif à l'exécution de votre projet.
Si cela fonctionne pour vous, vous pouvez changer le répertoire d'exécution de la racine du projet en répertoire binaire en:
$(workspace_loc:proj-1)
.J'ai besoin de cela au lieu de simplement mettre des fichiers dans le répertoire racine du projet lorsque je fais une affectation et le professeur requiert une hiérarchie de fichiers spécifique; De plus, c'est plus portable que le chemin absolu.
Dans le répertoire de base, créez un dossier, nommez-le "res". Placez votre fichier dans le dossier "res".
utilisez String file = ".\\res\\strength.txt";
pour référencer l'emplacement de votre fichier.
Vous devez utiliser un dossier de ressources pour stocker tous les fichiers que vous utilisez dans votre programme (bonne pratique).
Et faites une référence de ce fichier à partir de votre répertoire racine. Le fichier est donc présent dans le package.