Cómo usar StaX

Hola chicos, por lo que soy nuevo en el mundo del análisis de Java-XML y descubrí que la API de StaX es probablemente mi mejor opción, ya que necesito leer y escribir archivos XML. Bien, tengo un programa muy corto (y debería ser muy simple) que (debería) crear un XMLInputFactory y usarlo para crear un XMLStreamReader. El XMLStreamReader se crea utilizando un FileInputStream adjunto a un archivo XML en el mismo directorio que el archivo de origen. Sin embargo, aunque el FileInputStream se compiló correctamente, el XMLInputFactory no puede acceder a él y sin el FileInputStream no puede crear el XMLStreamReader. ¡Por favor, ayúdenme ya que no tengo idea de qué y estoy frustrado hasta el punto de rendirme!

import javax.xml.stream.*;
import java.io.*;
public class xml {
    static String status;
    public static void main(String[] args) {
        status = "Program has started";
        printStatus();      
        XMLInputFactory inFactory = XMLInputFactory.newInstance();
            status = "XMLInputFactory (inFactory) defined"; printStatus();
        try { FileInputStream fIS = new FileInputStream("stax.xml"); }
            catch (FileNotFoundException na) { System.out.println("FileNotFound"); }
            status = "InputStream (fIS) declared"; printStatus();
        try { XMLStreamReader xmlReader = inFactory.createXMLStreamReader(fIS); } catch (XMLStreamException xmle) { System.out.println(xmle); }
            status = "XMLStreamReader (xmlReader) created by 'inFactory'"; printStatus();
    }
    public static void printStatus(){ //this is a little code that send notifications when something has been done
        System.out.println("Status: " + status);
    }
}

También aquí está el archivo XML si lo necesita:

<?xml version="1.0"?>
    <dennis>
        <hair>brown</hair>
        <pants>blue</pants>
        <gender>male</gender>
    </dennis>

Respuestas a la pregunta(1)

Su respuesta a la pregunta