2016-08-09 5 views
0

Ich lerne gerade JAXP, SAX, DOM, StAX, XPath und XSLT. Und während ich testete, um zu sehen, wie StAX funktioniert, fand ich mich mit einem Fehler.FileReader kann keine XML-Datei im selben Ordner finden

Exception in thread "main" java.io.FileNotFoundException: test.xml (The system cannot find the file specified) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(FileInputStream.java:195) 
    at java.io.FileInputStream.<init>(FileInputStream.java:138) 
    at java.io.FileInputStream.<init>(FileInputStream.java:93) 
    at java.io.FileReader.<init>(FileReader.java:58) 
    at xmltest.XMLTest.main(XMLTest.java:16) 

Es ist ein klassischer Fehler, und ich weiß, was es bedeutet, das Problem ist, ich weiß nicht, warum es da „test.xml“ zeigt nach oben und „XMLTest.java“ im selben Ordner ist /Paket. Hier

ist der Code unter:

XMLTest.java -

package xmltest; 

import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.Reader; 
import javax.xml.stream.XMLInputFactory; 
import javax.xml.stream.XMLStreamException; 
import javax.xml.stream.XMLStreamReader; 

public class XMLTest { 

    public static void main(String[] args) throws FileNotFoundException, XMLStreamException { 

     XMLInputFactory xmlif = XMLInputFactory.newFactory(); 
     Reader reader = new FileReader("test.xml"); 
     XMLStreamReader xmlsr = xmlif.createXMLStreamReader(reader); 


     while (xmlsr.hasNext()) { 

      switch (xmlsr.next()) { 
       case XMLStreamReader.START_ELEMENT: 
        System.out.println("START_ELEMENT"); 
        System.out.println(" Qname = " + xmlsr.getName()); 

        break; 
       case XMLStreamReader.END_ELEMENT: 
        System.out.println("END_ELEMENT"); 
        System.out.println(" Qname = " + xmlsr.getName()); 
      } 
     } 
    } 

} 

test.xml -

<?xml version="1.0"?> 
    <catalog> 
     <book id="bk101"> 
      <author>Gambardella, Matthew</author> 
      <title>XML Developer's Guide</title> 
      <genre>Computer</genre> 
      <price>44.95</price> 
      <publish_date>2000-10-01</publish_date> 
      <description>An in-depth look at creating applications 
      with XML.</description> 
     </book> 
     <book id="bk102"> 
      <author>Ralls, Kim</author> 
      <title>Midnight Rain</title> 
      <genre>Fantasy</genre> 
      <price>5.95</price> 
      <publish_date>2002-12-16</publish_date> 
      <description>A former architect battles corporate zombies, 
      an evil sorceress, and her own childhood to become queen 
      of the world.</description> 
     </book> 
     <book id="bk103"> 
      <author>Corets, Eva</author> 
      <title>Maeve Ascendant</title> 
      <genre>Fantasy</genre> 
      <price>5.95</price> 
      <publish_date>2000-11-17</publish_date> 
      <description>After the collapse of a nanotechnology 
      society in England, the young survivors lay the 
      foundation for a new society.</description> 
     </book> 
     <book id="bk104"> 
      <author>Corets, Eva</author> 
      <title>Oberon's Legacy</title> 
      <genre>Fantasy</genre> 
      <price>5.95</price> 
      <publish_date>2001-03-10</publish_date> 
      <description>In post-apocalypse England, the mysterious 
      agent known only as Oberon helps to create a new life 
      for the inhabitants of London. Sequel to Maeve 
      Ascendant.</description> 
     </book> 
     <book id="bk105"> 
      <author>Corets, Eva</author> 
      <title>The Sundered Grail</title> 
      <genre>Fantasy</genre> 
      <price>5.95</price> 
      <publish_date>2001-09-10</publish_date> 
      <description>The two daughters of Maeve, half-sisters, 
      battle one another for control of England. Sequel to 
      Oberon's Legacy.</description> 
     </book> 
     <book id="bk106"> 
      <author>Randall, Cynthia</author> 
      <title>Lover Birds</title> 
      <genre>Romance</genre> 
      <price>4.95</price> 
      <publish_date>2003-09-02</publish_date> 
      <description>When Carla meets Paul at an ornithology 
      conference, tempers fly as feathers get ruffled.</description> 
     </book> 
     <book id="bk107"> 
      <author>Thurman, Paula</author> 
      <title>Splish Splash</title> 
      <genre>Romance</genre> 
      <price>4.95</price> 
      <publish_date>2004-11-02</publish_date> 
      <description>A deep sea diver finds true love twenty 
      thousand leagues beneath the sea.</description> 
     </book> 
     <book id="bk108"> 
      <author>Knorr, Stefan</author> 
      <title>Creepy Crawlies</title> 
      <genre>Horror</genre> 
      <price>4.95</price> 
      <publish_date>2005-12-06</publish_date> 
      <description>An anthology of horror stories about roaches, 
      centipedes, scorpions and other insects.</description> 
     </book> 
     <book id="bk109"> 
      <author>Kress, Peter</author> 
      <title>Paradox Lost</title> 
      <genre>Science Fiction</genre> 
      <price>6.95</price> 
      <publish_date>2006-11-02</publish_date> 
      <description>After an inadvertant trip through a Heisenberg 
      Uncertainty Device, James Salway discovers the problems 
      of being quantum.</description> 
     </book> 
     <book id="bk110"> 
      <author>O'Brien, Tim</author> 
      <title>Microsoft .NET: The Programming Bible</title> 
      <genre>Computer</genre> 
      <price>36.95</price> 
      <publish_date>2006-12-09</publish_date> 
      <description>Microsoft's .NET initiative is explored in 
      detail in this deep programmer's reference.</description> 
     </book> 
     <book id="bk111"> 
      <author>O'Brien, Tim</author> 
      <title>MSXML3: A Comprehensive Guide</title> 
      <genre>Computer</genre> 
      <price>36.95</price> 
      <publish_date>2007-12-01</publish_date> 
      <description>The Microsoft MSXML3 parser is covered in 
      detail, with attention to XML DOM interfaces, XSLT processing, 
      SAX and more.</description> 
     </book> 
     <book id="bk112"> 
      <author>Galos, Mike</author> 
      <title>Visual Studio 7: A Comprehensive Guide</title> 
      <genre>Computer</genre> 
      <price>49.95</price> 
      <publish_date>2008-04-16</publish_date> 
      <description>Microsoft Visual Studio 7 is explored in depth, 
      looking at how Visual Basic, Visual C++, C#, and ASP+ are 
      integrated into a comprehensive development 
      environment.</description> 
     </book> 
    </catalog> 

Und hier ist ein Link auf die Screenshot von m y-Hierarchie: http://pasteboard.co/6FbvgJLx6.png

Vielen Dank im Voraus. :)

EDIT Wenn ich den absoluten Pfad der Datei setzen, es funktioniert perfekt, aber ich will nicht zu hart Code dieses ...

+0

Wie werden Sie Ihr Programm starten? – bradimus

+0

XMLTest.java und test.xml könnten im selben Verzeichnis sein ... Was ist mit XMLTest.class? –

+0

Ich benutze Netbeans und führe das Programm wie alles, was ich vorher getan habe ... Ich habe eine Menge FileReading, Dateiverwaltung usw. in der Vergangenheit verwendet, und ich weiß nicht, warum das jetzt passiert :( –

Antwort

2

Versuchen Sie Ihre Datei als ein Laden Ressource, wie diese

URL fileURL = this.getClass().getResource("test.xml"); 
File file = new File(fileURL.getPath()); 

Dies wird Ihre Datei aus dem gleichen Paket der Klasse laden, die die Ressource lädt.

Sie können auch einen absoluten Pfad für die Datei zur Verfügung stellen, mit

URL fileURL = this.getClass().getResource("/my/package/to/test.xml"); 
+0

Ich kann die Datei nicht als Ressource laden, weil die URL aus irgendeinem Grund nicht korrekt importiert wird ... –

Verwandte Themen