Chemin d'accès du fichier ou l'emplacement des fichiers de Java - new file()

Je avoir la structure suivante pour mon projet.

Dans Eclipse:

myPorjectName
  src
    com.example.myproject
        a.java
    com.example.myproject.data
        b.xml

Dans a.java, je veux lire b.xml fichier. Comment puis-je le faire? Plus précisément, dans a.java, j'ai utilisé le code suivant:

DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse (new File("data/b.xml"));

Ce code ne peut pas trouver b.xml. Cependant, si je change le chemin d'accès à src/com/example/myproject/data/b.xml, alors il fonctionne. L'emplacement actuel semble être dans la racine de mon dossier de projet.

Mais je vois d'autres personnes d'exemples, si b.xml et a.java sont dans le même dossier, alors nous pouvons utiliser directement new File("b.xml"). Mais j'ai essayer de mettre b.xml dans le même dossier de a.java plutôt que de le mettre dans le sous-dossier, mais qu'il est encore ne fonctionne pas. Si cela fonctionne, alors dans mon cas, je devrais être en mesure d'utiliser new File("data/b.xml"), droit? Je ne comprends vraiment pas pourquoi cela ne fonctionne pas.

Il est plus susceptible d'être plus comme getClass().getResourceAsInputStream("/com/example/myproject/data/b.xml");
Il ne fonctionne pas parce que votre répertoire par défaut (que java est en cours d'exécution. est myPorjectName il n'est pas dans myproject
xagyg et MadProgrammer les commentaires de me faire comprendre pourquoi je le faisais mal. Merci les gars. La réponse suivante me fait apprendre quelque chose de plus.

OriginalL'auteur Joey | 2013-05-01