Chemin d'accès du fichier de propriétés en java
J'ai un fichier de propriété qui est à l'intérieur d'un package par défaut et la classe dans laquelle je suis en utilisant le fichier de propriétés est également dans le même package par défaut. Si j'utilise juste le nom de fichier sans chemin, j'obtiens l'erreur. Ce n'est évidemment pas correct, car je doit donner une sorte de chemin à consulter tat de fichier. Je vais créer l'application en faire un fichier jar alors, comment dois-je donner le chemin du fichier de propriétés doivent aller à l'intérieur de ce fichier jar. Je suis à l'aide de Netbeans IDE.
MODIFIER
Properties pro = new Properties();
try {
pro.load(new FileInputStream("pos_config.properties"));
pro.setProperty("pos_id", "2");
pro.setProperty("shop_type", "2");
pro.store(new FileOutputStream("pos_config.properties"), null);
String pos_id = pro.getProperty("pos_id");
if(pos_id.equals("")){
pos_id="0" ;
}
global_variables.station_id = Integer.parseInt(pos_id);
String shop_type = pro.getProperty("shop_type");
if(shop_type.equals("")){
shop_type="0" ;
}
global_variables.shop_type = Integer.parseInt(shop_type);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
Merci de poster le code que vous utilisez pour accéder au fichier de propriétés.
petit lapin foo foo: Vérifier mon montage..
Je n'ai pas utiliser netbeans mais si vous cliquez droit sur le fichier dans netbeans vous n'avez pas quelque chose comme
la révision du code commentaire: il semble que votre code et la plupart des exemples de code dans les réponses à cette question ne parviennent pas à fermer le flux d'entrée. Il peut causer des problèmes pour vous.
petit lapin foo foo: Vérifier mon montage..
Je n'ai pas utiliser netbeans mais si vous cliquez droit sur le fichier dans netbeans vous n'avez pas quelque chose comme
build path > include
la révision du code commentaire: il semble que votre code et la plupart des exemples de code dans les réponses à cette question ne parviennent pas à fermer le flux d'entrée. Il peut causer des problèmes pour vous.
OriginalL'auteur Deepak | 2011-07-14
Vous devez vous connecter pour publier un commentaire.
Utilisation
getClass().getResourceAsStream("foo.properties")
Mais notez qu'en utilisant le package par défaut est déconseillée (ci-dessus va travailler avec tous les packages).
Votre code ne fonctionne pas car la
FileInputStream(..)
utilise des chemins relatifs à l'actuel répertoire de l'utilisateur (voirjava.io.File
de la documentation). Ainsi, il cherchefoo.properties
dans/home/usr/
ouc:\documents and settings\usr
. Depuis votre.properties
fichier est sur le chemin de la classe, vous pouvez le lire comme tel par leClass.getResourceAsStream(..)
méthode.OriginalL'auteur Bozho
Comme d'autres l'ont indiqué, vous devez le charger depuis le classpath au lieu d'un fichier si vous voulez être en mesure de le charger à partir d'un bocal. Vous voulez la Classe.getResourceAsStream() méthode ou la Chargeur de classe.getResourceAsStream() méthode. Cependant, l'utilisation de
getClass().getResourceAsStream("pos_config.properties")
est dangereux parce que vous utilisez un chemin d'accès qui est réglée par rapport à la classe donnée, et une sous-classe peut changer l'emplacement sur lequel il est résolu. Par conséquent, il est plus sûr d'un nom de chemin d'accès absolu à l'intérieur du bol:ou mieux encore, utiliser une classe littérale au lieu de getClass():
OriginalL'auteur Ryan Stewart
Vous essayer d'obtenir les propriétés de fichier à partir du répertoire de travail actuel ou essayez-vous d'obtenir des ressources? Il semble que vous devriez être en utilisant.
pour charger un fichier à partir du répertoire courant
Ma conjecture est que vous voulez vraiment est ce.
Lorsque vous utilisez le
properties
de référence, vous pouvez utiliser la non-méthodes statiques de PropriétésgetResourceAsInputStream() -> getResourceAsStream()
Je vous remercie.
Votre extrait de code n'utilise répertoire de travail, et non pas le chemin de la classe. La question stipule que les propriétés de fichier sera livré dans un pot, de sorte qu'il doit être chargé à partir du classpath.
OriginalL'auteur Peter Lawrey
Je serait de toute façon vous recommandons de placer l'ensemble de la propriété des fichiers dans un dossier de ressources.
Dans Eclipse, vous pouvez créer un dossier source avec:
Je parie qu'il y est quelque chose de semblable dans Netbeans. Mettez tous vos fichier de propriétés. Plus tard, vous pouvez y accéder avec le code suivant:
Donc, pour votre problème spécifique, vous devriez pouvoir y accéder comme ça:
OriginalL'auteur Prine
Dans une méthode statique-je utiliser
OriginalL'auteur Nikolay Frick
Ce ne sera pas compiler:
:
OriginalL'auteur tulu