2014-02-28 3 views
22

Ich habe eine Feder Spring Projekt, gibt es xml Datei innerhalb src/main/resources/xyz.xml. Wie kann ich es im Feder MVC Controller lesen.Spring MVC: lesen Sie die Datei von src/main/resources

Ich bin mit

InputStream is = getClass().getResourceAsStream("classpath:xyz.xml"); 

aber is ist null.

+0

Mögliche Duplikat [Java Spring - Wie Classpath verwenden, um eine Datei Speicherort angeben] (http://stackoverflow.com/questions/13571960/java-spring-how-to-use-classpath-to -specify-a-file-location) – PhoneixS

Antwort

57
Resource resource = new ClassPathResource(fileLocationInClasspath); 
InputStream resourceInputStream = resource.getInputStream(); 

mit ClassPathResource und Schnittstelle resource. Stellen Sie jedoch sicher, dass Sie das Ressourcenverzeichnis korrekt kopieren (mithilfe von Maven), und dass es nicht fehlt, z. B. wenn Tests als Teil des Testkontextes ausgeführt werden.

+0

In diesem Fall sollte fileLocationInClasspath nicht mit "classpath:" beginnen. – User007

10

Hier ist eine Möglichkeit, Klassenpfadressourcen zu laden.

Resource resource = applicationContext.getResource("classpath:xyz.xml"); 
InputStream is = resource.getInputStream(); 
+1

Wie kann "is" in das Zielformat konvertiert werden? – Kenji

+0

Hey Robby, das ist super hilfreich, aber Kenji und ich fragen uns, wie du dann eine Datei Zeile für Zeile aus dem Eingabestream analysieren würdest. – anon58192932

Verwandte Themen