2017-10-16 6 views
0

J'ai un problème. Dans mon programme dans un paquet il y a une classe Firma. Au constructeur de cette classe, j'ai lu des informations sur un fichier texte nommé 'firmendaten.fd'. Le fichier texte est également situé dans le même paquet, mais si j'essaie de lire, je reçois un FileNotFoundException.Exception de fichier introuvable, mais dans le même dossier/package

Le code qui produit l'erreur:

public Firma(){ 
    BufferedReader in = null; 
    try { 
     in = new BufferedReader(new FileReader("Firmendaten.fd")); 
     name = in.readLine(); 
     zusatz = in.readLine(); 
     strasse = in.readLine(); 
     hnr = in.readLine(); 
     plz = in.readLine(); 
     ort = in.readLine(); 
     bank = in.readLine(); 
     iban = in.readLine(); 
     bic = in.readLine(); 
     steuerNr = in.readLine(); 
     steuersatz = in.readLine(); 
     chef = in.readLine(); 
     zahlungsziel = in.readLine(); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     if (in != null) 
      try { 
       in.close(); 
      } catch (IOException e) { 
      } 
    } 
    } 

L'erreur qu'il produit:

java.io.FileNotFoundException: Firmendaten.fd (Das System kann die angegebene Datei nicht finden) 
at java.io.FileInputStream.open0(Native Method) 
at java.io.FileInputStream.open(Unknown Source) 
at java.io.FileInputStream.<init>(Unknown Source) 
at java.io.FileInputStream.<init>(Unknown Source) 
at java.io.FileReader.<init>(Unknown Source) 
+1

Veuillez ne pas publier des captures d'écran d'erreurs, mais les afficher sous forme de texte, c'est-à-dire le code qui produit l'erreur (à moins que ce ne soit trop) et l'erreur elle-même. – Thomas

+0

essayez d'utiliser le chemin absolu du fichier lorsque vous le passez au lieu du nom –

+0

si j'utilise le chemin absolu c'est bon, mais le chemin absolu est un mauvais code, car si le programme est situé ailleurs, il relance cette exception . – flam3shadow

Répondre

0

J'ai eu un problème similaire ish récemment donc j'utilisé l'emplacement du fichier .jar dont le programme était en cours d'exécution.

 String path = Class.class.getProtectionDomain().getCodeSource().getLocation().getPath(); 
     path = path.substring(0, path.lastIndexOf("/") + 1); 
     String decodedPath = URLDecoder.decode(path, "UTF-8"); 
     return decodedPath; 

Puis j'ai appelé le fichier comme:

File file = new File(userPath + "\\yourfile.txt"); 

Notez que cela a été pris d'un mélange de réponses ici, donc je l'espère peut vous aider.

+0

à la ligne de code: Chemin d'accès chaîne = Class.class.getProtectionDomain(). getCodeSource(). getLocation(). getPath(); si j'utilise votre extrait de code – flam3shadow

+0

J'ai trouvé l'erreur que j'ai faite en utilisant votre extrait – flam3shadow