Classpath Directory fuer Properties File

Bitte aktiviere JavaScript!
Hallo zusammen,

ich habe mal eine Frage zur Java Projekt Struktur und in dem Zusammenhang mit einem Properties File.
Ich habe als Beispiel folgende Projekt Struktur:
Code:
  src
    \_ de.ralfb_web
       \_ Main.java
    \_ de.ralfb_web.ui
       \_ MainController.java
    \_ de.ralfb_web.services
       \_ DAOService.java
Jetzt möchte ich ein default.properties File erstellen und im MainController.java einlesen und ein Properties Objekt erstellen.

Frage:
1. Wo in meiner Struktur gehört das default.properties File hin? Mir ist klar das ich es überall hinpacken kann, mir geht es aber darum wie man es als "guter" Programmierer machen würde ;)
2. Ich habe immer wieder Probleme in meinem Code dann die File Location für das File zu bestimmen, unter anderem häufig in Eclipse.
Wie kann ich den Path zu dem default.properties File bestimmen damit ich dieses dann über FileInputStream(in) und Properties .load(in) einlesen kann?

Gruß

Ralf
 
A

Anzeige




Vielleicht hilft dir unser Kurs hier weiter —> (hier klicken)
1. Wo in meiner Struktur gehört das default.properties File hin? Mir ist klar das ich es überall hinpacken kann, mir geht es aber darum wie man es als "guter" Programmierer machen würde ;)
Die meisten folgen diesem Layout: https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

Dort würde dass dann in src/main/resources gehören, wenn nötig baut man darin dann noch die Package-Struktur nach (wäre dann src/main/resources/de/ralfb_web/ui/default.properties.

2. Ich habe immer wieder Probleme in meinem Code dann die File Location für das File zu bestimmen, unter anderem häufig in Eclipse.
Wie kann ich den Path zu dem default.properties File bestimmen damit ich dieses dann über FileInputStream(in) und Properties .load(in) einlesen kann?
Abhängig vom genauen Pfad, wenn in dem oben genannten Order dann so:
MainController.class.getResourceAsStream("default.properties")

Das hängt dann ab vom aktuellem Package und dem "package" der Datei.
 
Hallo mrBrown,

vielen Dank für die ausführliche Antwort.

Ich habe es erst einmal bei der ursprünglichen Struktur belassen, und der Code sieht dann folgendermaßen aus:

Struktur:
Code:
src
    \_ de.ralfb_web
       \_ Main.java
    \_ de.ralfb_web.ui
       \_ MainController.java
       \_ default.properties
    \_ de.ralfb_web.services
       \_ DAOService.java
MainController.java:
Java:
try {
            InputStream in = MainController.class.getResourceAsStream("default.properties");
            Properties defaultProps = new Properties();
            defaultProps.load(in);
            in.close();
            System.out.println("User: " + defaultProps.getProperty("user"));
} catch (Exception ex) {
            String msg = String.valueOf(ex);
            messages.appendText(msg + "\n");
}
 
Passende Stellenanzeigen aus deiner Region:

Oben