2016-05-03 4 views
-1

Lorsque vous utilisez un FileOutputStream à la sortie d'un objet à un dossier dans un pot runnable vous obtiendrez un exemple de code FileNotFoundExceptionFileOutputStream intérieur pot runnable jeter FileNotFoundException si le chemin contient le dossier

qui jetteront FileNotFoundException (si le répertoire ou un fichier existant ou non):

 ObjectOutputStream wf = new ObjectOutputStream(new FileOutputStream("res/followers.txt")); 
     wf.writeObject(crntFollowers); 
     wf.flush(); 
     wf.close(); 
     writeSettingFollowers(crntFollowers.size()); 

Cependant lorsque vous utilisez le même code, sans l'ajout d'un « dossier » au chemin que vous n'obtiendrez un FileNotFoundException mais le fichier ne sera pas créé tout

exemple de code qui ne sera pas jeter FileNotFoundException:

 ObjectOutputStream wf = new ObjectOutputStream(new FileOutputStream("followers.txt")); 
     wf.writeObject(crntFollowers); 
     wf.flush(); 
     wf.close(); 
     writeSettingFollowers(crntFollowers.size()); 

Les deux extraits de code fonctionnent lorsqu'il est compilé dans Eclipse, mais pas comme un pot runnable, je suppose que cela est dû aux différents pathing mais je ne sais pas comment le résoudre .

Alors, comment puis-je écraser un objet dans un dossier à l'intérieur d'un fichier exécutable sans obtenir FileNotFoundException et le fichier est également créé?

Répondre

0

Vous vous trompez.

  1. Vous ne pouvez pas créer de fichiers à l'intérieur de fichiers JAR en cours d'exécution avec FileOutputStream ou de toute autre forme ou forme.
  2. Le fichier sera créé s'il n'y a pas d'exception, mais dans le répertoire de travail en cours, pas dans le fichier JAR.
+0

Merci, j'ai changé mon code et ça marche maintenant :) – durchstarter