2017-09-28 10 views
-2

Sans coller tout le code ici, la ligne où l'exception continue à se produire est:PrintWriter: java.io.FileNotFoundException: Le système ne peut pas trouver le chemin spécifié

PrintWriter prtwrt = new PrintWriter(new File(directoryName+File.separator+stud.getIndex()+".txt")); 

J'ai consulté l'Internet, et les livres J'ai sur Java, et en toute logique cela devrait fonctionner, mais ce n'est pas le cas. Quelqu'un peut-il expliquer pourquoi cela ne fonctionne pas, ou peut-être proposer une solution?

Stacktrace:

java.io.FileNotFoundException: students\0096-03.txt (The system cannot find the path specified) 
    at java.io.FileOutputStream.open0(Native Method) 
    at java.io.FileOutputStream.open(Unknown Source) 
    at java.io.FileOutputStream.<init>(Unknown Source) 
    at java.io.FileOutputStream.<init>(Unknown Source) 
    at java.io.FileWriter.<init>(Unknown Source) 
    at StudentsManager.main(StudentsManager.java:47) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:267) 

En outre, directoryName, comme son nom l'indique, est le nom du répertoire dans lequel le fichier doit être créé. Dans ce cas, c'est "étudiants". Essayez d'entrer le chemin d'accès complet au fichier car vous pourriez entrer un chemin relatif.

+3

et qu'est-ce que 'directoryName' ?? Collez également toute l'exception avec stacktrace – Antoniossss

+0

Cela ne fonctionne pas car le système ne peut pas trouver le chemin spécifié. – Oleg

+0

@Antoniossss a modifié la question –

Répondre

0

Si vous voulez vérifier si vous avez trouvé le fichier essayez le code suivant:

File file = new File(...); 
if(!file.exists()) { 
    System.out.println("File not found!"); 
    return; 
} 
0

permet donc avoir

File f=new File(directoryName+File.separator+stud.getIndex()+".txt"); 

Tout d'abord permet de vérifier si le chemin existe et créer arbre dir si elle ne non:

if(!f.getParentFile().exists()) f.getParentFile().mkdirs(); 

vous pouvez essayer de créer Writer

PrintWriter prtwrt = new PrintWriter(f); 

PrintWriter doit créer un nouveau fichier s'il n'existe pas encore; Si pour certaines raisons cela ne fonctionnera pas, créez un fichier avant et avec f.createNewFile()

Tout cela doit fonctionner.